我有这个错误,但并不总是。(我使用PHP SDK,最新版本)。如果我登录到facebook,我尝试注册和登录,然后应用程序说这是好的!此外,如果我没有登录到facebook,应用程序重定向到登录url,这里一切都好。
但是有时应用程序会说这个异常: oautheexception:必须使用一个活动访问令牌来查询当前用户的信息。和脚本使用循环重定向将用户重定向到loginUrl(因为访问令牌无效,用户总是需要loginUrl)
在网络上有人说Facebook创建了一个复制的访问令牌,然后php sdk的访问令牌不= Facebook。
为了修复,用户必须删除cookie, 我如何解决这个问题?
非常感谢您的回复,如果代码需要回复,我会发布它,祝你有一个美好的一天!:)
尝试销毁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;
}