访问令牌有效但我们得到OAuthException:活动访问令牌错误

时间:2012-12-08 11:50:33

标签: facebook-php-sdk access-token facebook-access-token uncaught-exception

我们已经在申请了大约2个月的工作,一切都很顺利。 我们在登录权限中使用PHP SDK和离线模式 但是几天前,在最近Facebook api的更改和删除离线模式之后,我们开始面临“未捕获OAuth异常”的问题:必须使用活动访问令牌来查询有关当前用户的信息。"

主要问题是它在我们的应用程序中运行一段时间后会发生(大约10分钟),但同时我们通过this link检查令牌的有效性 我们看到令牌仍然有效,另一方面,cookie仍然存在且它不会过期但我们收到此错误: "未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息"

I've already visited this link 我下载了最新版本,但没有任何人可以帮助我们取悦哪里可能会出错?


感谢您的回复,我认为与Yacon一样 在我们处理的那一刻,访问facebook-> api(/ me)时似乎存在一个错误 应用程序的某些部分使用javascript,使用javascript sdk真的很头疼 和PhP sdk并排在一起

3 个答案:

答案 0 :(得分:2)

你可以解决这个问题,只需在getLoginUrl

之后将accessstoken存储到会话变量中
  

$ facebook-> getLoginUrl(...)

然后每当你初始化facebook

$facebook = new Facebook(array(
  'appId' => Yii::app()->params['facebook_appId'],
  'secret' => Yii::app()->params['facebook_appSecret'],
));

从会话中获取accessstoken并使用setAccessToken

进行设置
  

$ facebook-> setAccessToken(Yii的::应用程序() - >会话[ 'ACCESS_TOKEN']);

答案 1 :(得分:1)

我以这种方式处理这种情况 1.i获取访问令牌1小时有效期 2.将令牌延长至60天有效期 3.将该令牌保存到会话并将其用于所有项目查询。

         try{
               $facebook_uid = $facebook->getUser();
                $facebook->setExtendedAccessToken();
                $accessToken = $facebook->getAccessToken();
                $fbuser = $facebook->api('/me');
                $session['api_me'] = $fbuser;
                $session['tokenValue'] = $accessToken;
        }catch (Exception $e) {
                facebook_uid =null;
        }

答案 2 :(得分:0)

我认为api中存在一个错误。当我使用$ facebook-> api('/'。$ facebook_uid)代替 - > api('/ me')时,它可以正常工作。