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


OAuthException: An active access token must be used to query information about the current user

我有这个错误,但并不总是。(我使用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;
}