【问题标题】:Facebook FQL: Get checkins within rangeFacebook FQL:获取范围内的签到
【发布时间】:2011-07-12 03:28:05
【问题描述】:

有没有办法使用 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:05):

我主要只是在寻找最终结果 - 不需要在单个 FQL 语句中恢复所有内容,甚至不需要使用 FQL(图形 api,可能吗?)我知道我可能需要将其恢复数据由于 FQL/图形 api 的限制,分段并在本地使用它。我只是想以一种有效的方式来完成它,这样用户就不必等待 20 秒来加载所有内容。

直接的问题是,如果某人有数百个朋友,并且每个朋友的所有签到都返回,那么处理的数据就太多了。

我正在寻找的结果的详细信息是从我所有的朋友开始,最后是他们在过去 X 天内签到的前 10 个地方(基于签到的位置 ID 的最高频率),在用户当前 facebook 位置的 Y 距离内,并且该位置的页面属于某个类别,例如酒吧。

这就是我正在处理的场景,我希望我附加的其他信息不会使我最初的问题复杂化。谢谢!

【问题讨论】:

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


    【解决方案1】:

    因此,有一些名为 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(显然未记录)distancefunction 的输出单位。

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

    【讨论】:

    • @rene 很高兴知道;以为我的编辑原因会显示为评论或其他内容。
    • Facebook 更新了他们的 checkin 表,将 target_id 用于与 place 关联的页面或事件。我修改了@phreakhead 的答案以与他们的 API 保持同步,并包含一些指向 FQL 参考文档的链接。
    • @ShaneDaniel 仅当您访问编辑历史时。一般来说,我们倾向于 ping OP 进行编辑。如果这没有发生,您可以决定进行编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多