【问题标题】:Graph API for user returns false even with a valid user access token即使使用有效的用户访问令牌,用户的图形 API 也会返回 false
【发布时间】:2011-09-09 05:32:51
【问题描述】:

大约 2% 的时间,用户授权我的 Facebook 应用并使用有效的访问令牌,我调用 Facebook 的 Graph API 只是为了取回值“false”而不是用户信息的 JSON 表示。例如:

https://graph.facebook.com/{user_id}?access_token={user_access_token}

--> returns "false"

我自己似乎无法重现该问题。我的问题可能与这个答案有关: http://facebook.stackoverflow.com/questions/5085957/facebook-graph-api-returns-false-for-page-accounts/6595465#6595465

但正如上面的答案所示,当我作为主页登录时,我无法访问我的应用程序,因此我无法验证我的问题是否相同。

有什么建议吗?

更新(2011-09-29)

事实证明,只要用户没有完整的个人资料,就会出现此问题。您可以通过先退出 Facebook 然后在此处创建 Facebook 页面来重现此问题:

http://www.facebook.com/pages/create.php

在页面创建过程中,Facebook 会要求您使用现有帐户登录或创建一个新帐户。如果您创建一个新帐户,Facebook 将为您创建一个用户帐户,但该用户帐户将没有完整的个人资料。因此,Facebook 的 API 没有提供他们所拥有的有关用户的信息(即它在注册过程中收集的信息),而是返回 false。一旦用户“创建个人资料”,Facebook 的 API 就会返回正确的用户图表。

【问题讨论】:

  • 我在拨打https://graph.facebook.com/me?access_token=foo 时看到过这个问题,但只是偶尔。我无法使用您描述的自动创建的用户方法来重现它。由于发生这种情况时我没有 facebook 用户 ID,因此不一定容易弄清楚如何联系用户以查看他们的 facebook 帐户是否处于某种奇怪的状态。我希望有人能对此有所了解。
  • 您是否使用 Facebook 所需的最少信息创建了用户帐户?
  • IIRC,我唯一输入的是一个电子邮件地址。

标签: facebook api facebook-graph-api


【解决方案1】:

“false”返回几乎总是意味着您正在尝试访问当前用户(或页面、应用程序等,取决于您的access_token)无权查看的内容。

如果您确实使用用户访问令牌调用 /{user_id},则很可能是用户禁用了平台,或者用户已阻止会话用户。

【讨论】:

  • 谢谢@Igy。我接到了一位使用我的应用程序遇到此问题的用户的电话。您能否告知我如何检查该用户是否禁用了平台或会话用户是否被阻止?我希望用户在我们尝试诊断此问题时与我分享她的屏幕。
  • 如果他们可以在第三方网站上使用类似按钮,他们没有禁用平台,不知道如何诊断他们是否阻止了应用程序,但我认为如果他们尝试进入,会有一个对话框您的应用并阻止它提示他们取消阻止它
【解决方案2】:

当用户 ID 是个人资料 ID、应用 ID 或页面 ID 时,Facebook 返回 {user_id} 数据的 JSON 表示(根据您的使用情况)

当这三个都不是时返回false。您使用的{user_id}有问题。您应该记录您收到此错误的 id,然后尝试像 http://graph.facebook.com/{user_id} 一样进行图形调用。如果这再次返回 false,您将确定它是一个错误的 id,,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2021-12-17
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多