4

FQL を使用して、指定した場所の範囲内にあるすべての友人のチェックインを選択する方法はありますか? FQL を使用して、友人のチェックイン座標を返すことができます。

https://api.facebook.com/method/fql.query?access_token={0}&query=SELECT coords FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

しかし、上記のクエリに追加して次のようなことを行うにはどうすればよいですか...

Where coords Within 10 miles of [(New York City, NY) | (long, lat) | (user.current_location)]

どんな助けでも大歓迎です。前もって感謝します。

編集 (3/9 午後 3 時 5 分):

私は主に最終結果を探しているだけです-単一のFQLステートメントですべてを取得する必要はなく、FQL(グラフAPI、おそらく?)を使用する必要さえありません。データをバラバラに戻す必要があるかもしれません。 FQL/グラフ API の制限により、ローカルで作業できます。ユーザーがすべてがロードされるまで20秒待つ必要がないように、効率的な方法でそれを行いたいだけです。

当面の問題は、誰かが数百人の友達を持っていて、各友達のすべてのチェックインが返される場合、データが多すぎて処理できないことです。

私が探している結果の粒度の詳細は、すべての友人から始めて、最後の X 日以内にチェックインした上位 10 の場所 (チェックインの場所 ID の頻度が最も高いことに基づく) で終わることです。ユーザーの現在のFacebookの場所のY距離、およびその場所のページがバーなどの特定のカテゴリに分類される場所。

それが私が扱っているシナリオであり、追加した追加情報が元の質問を複雑にしないことを願っています. ありがとう!

4

1 に答える 1

10

そのため、distance() という文書化されていない関数が役立ちますが、うまく機能しません (特に半径 50 km に制限されているため)。

SELECT coords, author_uid, tagged_uids, target_id, message FROM checkin WHERE target_id IN
(SELECT page_id FROM place WHERE distance(latitude, longitude, "37.75377496892", "-122.42077080676") < 50000)

Max は 50,000メートル です。これは、FQL の (明らかに文書化されていない)distance関数の出力単位です。

https://developers.facebook.com/docs/reference/fql/checkin/ https://developers.facebook.com/docs/reference/fql/place

于 2011-11-14T07:18:09.340 に答える