我正在尝试以前找到我的朋友去过Paris 。我正在尝试使用Graph API来执行此操作。
所以基本上就是地方ID(对于巴黎它是 110774245616525 ),我可以使用端点 https://graph.facebook.com/110774245616525/ 来获取基本信息。然后,我得到一个access_token,带有friends_status和user_status权限(使用Graph Explorer),我正在使用此访问令牌来获取签到。所以我正在进行 GET https://graph.facebook.com/110774245616525/checkins?access_token=my_access_token 调用,我得到的只是此错误消息:
page_id不是签入表的成员
虽然,阅读the documentation我看到与签到的连接:
由当前用户和朋友们对此地方信息页进行了检查 当前用户。
这是Graph API的错误还是我的方式?
谢谢!
答案 0 :(得分:1)
7月发布https://developers.facebook.com/roadmap/中的签名有一个重大变化,它提到将page_id重命名为target_id,所以这可能是造成它的原因。但是,以下fql查询可能是您的起点
select author_uid from checkin where target_id = 110774245616525
author_uid应该是签入https://developers.facebook.com/docs/reference/fql/checkin
的人答案 1 :(得分:1)
我得到以下fql来显示我在特定位置签到的朋友的所有姓名。只在Graph API资源管理器中尝试过,而且速度相当慢:/让我知道它是否有用:)
从uid所在的用户中选择名称(从checkin中选择author_uid,其中author_uid在(从朋友中选择uid2,其中uid1 = me())和target_id = 110774245616525)
另外一个注意事项:我注意到我的很多朋友出现在“访问过法国巴黎的朋友”栏目中,但他们没有任何实际的签到。我认为这个盒子还会检查你的朋友是否有任何来自巴黎的照片..只是一个想法
答案 2 :(得分:0)
在asifrc和TommyBs的帮助下,我找到了一种使用此查询在FQL中执行此操作的方法:
SELECT name
FROM user
WHERE uid IN (
SELECT author_uid
FROM location_post
WHERE distance(latitude, longitude, "48.856614", "2.3522219") < 5000
AND author_uid IN (SELECT uid2 FROM friend WHERE uid1=me()))
这几乎让所有的朋友,搜索靠近巴黎市中心的所有帖子,然后得到他们的名字。
如果有人知道如何在Graph API中执行此操作,请告诉我,因为我认为依靠FQL仍然不是一个好主意。