我正在尝试使用Facebook查询语言(FQL)获取已安装我的应用程序的好友列表。在验证了我的应用程序并获取了应用程序访问令牌之后,我执行以下查询(请注意,我正在使用Java和RestFB运行):
https://api-read.facebook.com/method/fql.query?query=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
这会返回一个错误:
..."error_code":102,"error_msg":"Requires user session"
如果我尝试在图形API中使用FQL(如下所示),那么我会收到相同的错误。
https://graph.facebook.com/fql?q=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
所以我尝试使用用户访问令牌,预期结果是可以工作的。我搜索了很多并发现了这个链接:Facebook 'Friends.getAppUsers' using Graph API,其中有一些很好的建议,并引导我尝试以下查询:
https://graph.facebook.com/<userId>/friends?fields=installed&access_token=<appAccessToken>&format=json
这将返回使用应用访问令牌的好友列表。
这引出了我的问题。为什么我无法使用应用访问令牌来获取好友列表,但可以使用Graph API检索好友?
提前感谢,
Ben