【问题标题】:Facebook Access Token is Expired using Facebook SDK PHPFacebook 访问令牌已过期使用 Facebook SDK PHP
【发布时间】:2014-12-04 04:53:51
【问题描述】:

我正在尝试将我的应用程序链接到 facebook 用户帐户,但每次我检索他们的个人资料时都会收到此错误:

string(140) "{
"error":{
  "message":"An active access token must be used to query information about the current user.",
  "type":"OAuthException",
  "code":2500
  }
}" 

我感到困惑的原因是,当我最初从facebook 请求access_token 时,它会为我返回一个令牌。

string(56) "access_token={app_id}|{app_secret}" 

然后我被告知已过期,我不知道为什么.....

我了解要获得访问令牌,您必须遵循特定的工作流程。

  1. 客户端通过 SDK 和登录对话框请求访问和权限。
  2. 用户验证和批准权限
  3. 访问令牌返回给客户端
  4. 使用短期访问令牌(Web)或长期访问令牌(本机移动)的图形 API 调用

根据我在代码中看到的内容,我进入第 3 步,但第 4 步失败,因为据说令牌已过期。有谁知道我能做些什么来解决这个问题!?

我注意到,对于第 1 步,登录对话框从未显示,但尽管如此,我仍然收到返回的访​​问代码。这可能与它有关吗?这是我执行步骤 1 的方式。

<a class="lists" href="https://graph.facebook.com/oauth/authorize?client_id=564083793722908&redirect_uri=<?=urlencode($facebook_callback_url)?>&scope=offline_access,publish_stream,status_update">Connect a Facebook account</a>

第 2 步。似乎永远不会发生

第 3 步。虽然返回了访问令牌。见上文。

第 4 步。由于上述过期错误而失败。

有什么建议吗?

【问题讨论】:

    标签: facebook facebook-graph-api access-token facebook-access-token


    【解决方案1】:

    您不能使用应用访问令牌请求用户信息。您需要一个用户访问令牌来执行此操作。您的登录过程需要遵守

    的文档

    https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.1#login

    获取用户访问令牌。显然,您的代码并非如此。

    此外,您只使用(长期)弃用的权限。见

    【讨论】:

    • 这些链接帮了很大的忙,现在可以使用了。非常感谢。
    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多