0

我正在使用 facebook 进行身份验证并借给他们某些权利。我正在使用 Zend 框架,并将此代码放在函数内的引导类中

initFacebook(){

$db = Application_Model_DB::create();
  $db->setTable('users');

  Zend_Session::start();
  $facebookuser = new Zend_Session_Namespace('facebookUser');


  include('../library/Facebook/facebook.php');


   $facebook = new Facebook(array(
        'appId'  => '282270168507838',
        'secret' => '*cencor*',
      ));
   $accesstoken = $facebook->getAccessToken();

   try {
        $user_profile = $facebook->api('/me?accesstoken='.$accesstoken);
         $user = $facebook->getUser();
         $fbname = $user_profile['name'];

         $result = $db->fetchAllAsArray('fbid = "'.$user.'"');

         if (count($result) == 0) {
             $db->save(array('fbid'=>$user,'status'=>'standard','name'=>$fbname));
         }
         else {
              $facebookuser->status = $result[0]['status'];
              $facebookuser->fbname= $result[0]['name'];
              $facebookuser->fbuser = $result[0]['fbid'];


         }


      } catch (Exception $e) {
         $user = 0;
         $facebookuser->error = $accesstoken;
         $facebookuser->unsetAll();

   }
}

但这仅适用于大约 10 分钟到几个小时。

http://www.nicomollema.nl/我有一个演示,我使用 de PHP SDK 进行服务器端编码,我使用 de javascript sdk 生成登录/注销按钮。

当我检查它给我的错误是:必须使用活动访问令牌来查询有关当前用户的信息。

但正如你所看到的那样:$accesstoken = $facebook->getAccessToken(); 获取accesstoken,怎么会失效呢?

4

1 回答 1

0

我犯了一个大错误:我在 JavaScript SDK 中使用了与 PHP SDK 中不同的 APPID。当然,这些必须相同。

于 2012-09-06T17:50:37.530 回答