我一直在以各种可能的角度看着这个,我无法理解它,也许你们可以提供帮助。我运行此查询以获取我朋友的家乡和位置:
SELECT uid, name, timezone, hometown_location, current_location
FROM user WHERE uid IN ( SELECT uid2 FROM friend WHERE uid1 = me() )
hometown_location和current_location 总是 NULL,即使它们不应该是。使用像/ me / friends这样的东西?fields = hometown,location,...具有相同的结果。
另外,查询我自己的hometown_location和current_location是否正常工作。这让我觉得我没有权限访问我朋友的家乡& location ..但是如果是这样的话,不应该提出错误吗?
仍然,我的应用具有相同的权限:user_about_me,friends_about_me,user_hometown,friends_hometown,user_location& friends_location,所以我认为这不是问题。
如果我转到http://developers.facebook.com/docs/reference/api/并点击https://graph.facebook.com/me/friends?access_token= ...链接,我追加& fields = name,hometown,它就可以了,所以我知道可以做到。
知道我能做错什么吗?
非常感谢!
曼努埃尔
答案 0 :(得分:6)
对于friends_hometown,您需要friends_hometown权限。
对于current_location,您需要friends_location权限。
确保拥有这些权限后,您应该能够通过运行该查询或使用具有这些权限的access_token的图表API https://graph.facebook.com/FRIEND_ID?fields=hometown,location来获取数据。
答案 1 :(得分:0)
您使用的是Simon Cross的界面吗? https://www.simoncross.com/fb/graph/ 它可以帮助您了解问题所在。尝试重新生成access_token,你可能仍然使用一个没有friend_hometown扩展权限的旧令牌。 如果您(或使用的令牌)没有访问数据的权限,API不会抛出任何类型的错误