0

我正在尝试使用 FQL 让我所有的 Facebook 朋友最后一次签到。因为我有很多朋友,所以 FQL 查询要花很长时间,所以我将其范围缩小到他们当前位置与我所在城市相同的朋友:

 SELECT author_uid, coords FROM checkin WHERE author_uid IN 
(SELECT uid FROM user WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me()) AND current_location.city IN
(SELECT current_location.city FROM user WHERE uid = me()))

我的问题:

  1. 对于每个用户,我得到 5 行。有没有办法让每个用户只获得 5 行?
  2. 也许有某种方法可以做一个 GROUP BY 吗?
  3. 这不是我想要的……很高兴听到建议
4

2 回答 2

2

如果你得到"exceeded the rate of 600 calls per 600 seconds"

刷新你的access token

/me/friends?fields=checkins.limit(<>)将为您解决问题。

或者

如果你想使用fql那么,

SELECT checkin_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

它会给你你朋友的签到。

如果您还想要标记您的朋友的签到,请使用以下查询:

SELECT checkin_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 =

 me()) OR tagged_uids IN (SELECT uid2 FROM friend WHERE uid1 = me())
于 2013-03-28T07:51:55.510 回答
1

使用 Graph API 可能比使用 FQL 更容易做到这一点。这将为您提供所有朋友的最新签到信息。

/me/friends?fields=checkins.limit(1)

FQL中没有SELECT UNIQUE语法,因此您需要在客户端应用程序中过滤结果。你可以ORDER BY用来对这些进行排序。

于 2013-01-17T20:18:20.467 回答