我有这个错误,但并不总是。 (我使用PHP SDK,最新版本)。 如果我登录到Facebook并且我尝试注册并登录,那么该应用程序说它没关系! 此外,如果我没有登录Facebook,应用程序会将我重定向到登录网址,这里一切都好。
但有时应用程序说出此异常: OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。并且脚本会将用户重定向到loginUrl使用循环重定向(因为访问令牌无效且用户需要始终使用loginUrl)
在网络上有人说Facebook创建了一个重复的访问令牌,然后访问php sdk的令牌不是 = facebook。
要进行修复,用户必须删除Cookie,我如何解决此问题?
非常感谢您的回复,如果代码需要回复,我会发布,祝您有个美好的一天!的:)
答案 0 :(得分:1)
尝试销毁Facebook会话,然后在收到此错误时将用户重定向到登录URI,这样您就会获得一个新的访问令牌。
注意:访问令牌在很短的时间后到期,您可以获得一个长期的生存访问令牌。最新的PHP SDK包含一个名为setExtendedAccessToken()
的公共函数您可以调用此功能自动交换2-3小时的生存访问令牌,以获得60天的访问令牌
例如:
try {
$user = $this->facebooknew->api('/me');
$this->facebooknew->setExtendedAccessToken();
$access_token = $this->facebooknew->getAccessToken();
}
catch(FacebookApiException $e){
$this->facebooknew->destroySession();
header('Location: ' . $this->facebooknew->getLoginUrl($params));
//echo $e;
}