Facebook FQL:获取范围内的签到

时间:2011-03-09 18:25:26

标签: facebook facebook-graph-api coordinates facebook-fql checkin

有没有办法使用FQL选择我所有朋友在指定位置范围内的Checkins?我可以使用FQL返回我的朋友checkin coords:

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:05 pm est):

我主要只是寻找最终结果 - 不需要在一个FQL语句中获取所有内容,甚至不需要使用FQL(图形api,可能吗?)我知道我可能需要将数据带回来由于FQL / graph api的限制,它可以在本地使用并在本地使用。我只是想以有效的方式做到这一点,因此用户不必等待20秒即可加载所有内容。

当前的问题是,如果某人有几百个朋友并且每个朋友的所有签到都被退回,那么这个数据就太多了。

我正在寻找的结果的详细细节是从我的所有朋友开始,最后得到他们在过去X天内检查的前10位(根据签到位置ID的最高频率),在用户当前的facebook位置的Y距离内,以及位置的页面属于某个类别的位置,如酒吧。

这就是我正在处理的情景,我希望我附加的附加信息不会使我原来的问题复杂化。谢谢!

1 个答案:

答案 0 :(得分:10)

所以有一些名为distance()的无证函数可能对你有所帮助,虽然它不能很好地工作(特别是因为它限制在50公里半径范围内):

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)

最大值为50,000 ,这是FQL(显然未记录的)distance函数的输出单位。

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