私のアプリでは、ユーザーはある場所にいて、自分がいる場所から10マイル離れた場所にいる友達を探しています。FQLまたはグラフでこれを見つけるにはどうすればよいですか?私が見ることができる唯一の方法は、 https://graph.facebook.com/search?type = checkinのような検索を実行し、結果を実行して、10マイル以内にある場所を見つけることです。これにはもっと良い方法がありますか?
ご協力いただきありがとうございます!
ドールズ
私のアプリでは、ユーザーはある場所にいて、自分がいる場所から10マイル離れた場所にいる友達を探しています。FQLまたはグラフでこれを見つけるにはどうすればよいですか?私が見ることができる唯一の方法は、 https://graph.facebook.com/search?type = checkinのような検索を実行し、結果を実行して、10マイル以内にある場所を見つけることです。これにはもっと良い方法がありますか?
ご協力いただきありがとうございます!
ドールズ
http://developers.facebook.com/docs/reference/fql/location_post/から
それは言う
場所が関連付けられており、次の条件の少なくとも1つを満たす投稿を返すFQLテーブル。
- あなたは投稿でタグ付けされました
- 友達が投稿でタグ付けされました
- あなたは投稿を作成しました
- 友人が投稿を作成しました
注:このクエリは大量のデータを処理できます。管理可能な量のデータが妥当な時間枠内に返されるようにするには、最近のタイムスタンプを指定して結果を絞り込む必要があります。
指定された場所から10,000メートル以内の投稿を返します。
SELECT id, page_id FROM location_post WHERE distance(latitude, longitude, '37.86564', '-122.25061') < 10000
最初の答えは私の目的の一部にはうまくいきましたが、すぐに不十分になりました。今、頭を壁にぶつけた後、ついに壊れました(頭ではなく、壁です)。必要なものを見つけるために機能する2つのより良い方法を次に示します。
これは、チェックインのみを検索するためのものです。
SELECT checkin_id, coords, tagged_uids, page_id FROM checkin WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) または author_uid=me()) および coords.latitude<'45.0' および coords.latitude>'29' およびcoords.longitude>'-175' および coords.longitude<'-5';
これは、すべての場所の投稿を見つけるためのものです:
SELECT id, page_id FROM location_post WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) または author_uid=me()) and coords.latitude<'45.0' and coords.latitude>'29' and coords.longitude> '-175' および coords.longitude<'-5'