OAuthException:必须使用活动访问令牌来查询有关当前用户的信息

时间:2013-03-02 19:01:26

标签: php facebook exception sdk

我有这个错误,但并不总是。 (我使用PHP SDK,最新版本)。 如果我登录到Facebook并且我尝试注册并登录,那么该应用程序说它没关系! 此外,如果我没有登录Facebook,应用程序会将我重定向到登录网址,这里一切都好。

有时应用程序说出此异常: OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。并且脚本会将用户重定向到loginUrl使用循环重定向(因为访问令牌无效且用户需要始终使用loginUrl)

在网络上有人说Facebook创建了一个重复的访问令牌,然后访问php sdk的令牌不是 = facebook。

要进行修复,用户必须删除Cookie,我如何解决此问题?

非常感谢您的回复,如果代码需要回复,我会发布,祝您有个美好的一天!的:)

1 个答案:

答案 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;
}