即使使用有效的用户访问令牌,用户的图谱API也会返回false

时间:2011-09-09 05:32:51

标签: facebook api facebook-graph-api

大约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将返回正确的用户图。

What Facebook looks like when the user doesn't have a Profile.

2 个答案:

答案 0 :(得分:1)

当用户ID为个人资料ID,应用ID或网页ID

时,Facebook会返回{user_id}的数据的JSON表示(根据您的用法) 如果它们都不是三个,则返回

false。您正在使用的{user_id}有问题。你应该记录你收到此错误的ID并尝试进行图形调用然后像http://graph.facebook.com/ {user_id} ..如果这又返回false,你将确定它是一个错误的id,

答案 1 :(得分:1)

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

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