【问题标题】:OAuthException: An active access token must be used to query information about the current userOAuthException:必须使用活动访问令牌来查询有关当前用户的信息
【发布时间】:2013-06-17 04:36:32
【问题描述】:

我有这个错误,但并非总是。 (我使用 PHP SDK,最新版本)。 如果我登录 facebook 并尝试注册并登录,那么应用程序会说没问题! 此外,如果我没有登录 facebook,应用程序会将我重定向到登录 url,这里一切正常。

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

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

为了修复,用户必须删除 cookie,我该如何解决这个问题?

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

【问题讨论】:

    标签: php facebook exception sdk


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-22
      • 2012-01-23
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      相关资源
      最近更新 更多