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

これは、FQLよりもGraphAPIの方が簡単な場合があります。これにより、すべての友達の最新のチェックインが行われます。

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

FQLには構文がないSELECT UNIQUEため、クライアントアプリケーションで結果をフィルタリングする必要があります。これらを並べ替えるために使用できますORDER BY

于 2013-01-17T20:18:20.467 に答える