我们已经在申请了大约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并排在一起
答案 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')时,它可以正常工作。