在我的应用程序中,用户在一个位置并正在寻找她的朋友,这些朋友在她所在的地方 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/
它说
一个 FQL 表,它返回具有与其关联的位置并且至少满足以下条件之一的帖子:
- 你在帖子中被标记
- 一位朋友在帖子中被标记
- 您撰写了帖子
- 一位朋友撰写了这篇文章
注意:此查询可以处理大量数据。为了确保在合理的时间范围内返回可管理的数据量,您应该指定最近的时间戳以缩小结果范围。
给定位置 10,000 米内的回帖:
SELECT id, page_id FROM location_post WHERE distance(latitude, longitude, '37.86564', '-122.25061') < 10000
尽管最初的答案确实对我有用,但它很快就变得不充分了。现在,在把我的头撞到墙上之后,它终于打破了(不是我的头——墙)。这里还有两种更好的方法可以找到我需要的东西:
这是为了找到签到:
SELECT checkin_id, coords, tagged_uids, page_id FROM checkin WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) or author_uid=me()) and coords.latitude<'45.0' and coords.latitude>'29' and coords.longitude>'-175' 和 coords.longitude<'-5';
这是查找所有位置信息:
SELECT id, page_id FROM location_post WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) or author_uid=me()) and coords.latitude<'45.0' and coords.latitude>'29' and coords.longitude> '-175' 和 coords.longitude<'-5'