0

我试图找出我的哪些朋友以前去过巴黎。我正在尝试使用 Graph API 来执行此操作。

所以基本上有地点 ID(对于巴黎,它是110774245616525),我可以使用端点https://graph.facebook.com/110774245616525/来获取基本信息。然后,我获得了一个具有 friends_status 和 user_status 权限的 access_token(使用Graph Explorer),并且我正在使用这个访问令牌来获取签到。所以我正在做一个GET https://graph.facebook.com/110774245616525/checkins?access_token=my_access_token调用,我得到的只是这个错误消息:

page_id 不是签入表的成员

虽然,阅读文档我看到了与 checkins 的联系:

当前用户和当前用户的朋友对该地点页面的签到。

这是 Graph API 的错误还是我的方式错误?

谢谢 !

4

3 回答 3

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的人

于 2013-04-23T15:57:42.410 回答
1

我得到了以下 fql 来显示在特定位置签到的所有朋友的姓名。只在 Graph API Explorer 中尝试过,它相当慢:/ 如果它有帮助,请告诉我:)
从用户中选择名称,其中 uid 在(从签入中选择 author_uid where author_uid in(从朋友那里选择 uid2,其中 uid1=me())和 target_id=110774245616525)

附加说明:我注意到我的许多朋友出现在“访问过法国巴黎的朋友”框中,但他们没有任何实际的签到。我认为该框还会检查您的朋友是否有任何来自巴黎的照片..只是一个想法

于 2013-04-23T16:35:37.497 回答
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 仍然不是一个好主意。

于 2013-04-23T17:22:59.090 回答