用于查找公共事件的FQL查询

时间:2012-06-04 12:36:41

标签: facebook location facebook-fql latitude-longitude facebook-events

我想执行一个FQL查询来检索特定区域中的所有公共事件(使用经度,纬度和最大距离或只是位置名称)。你知道这是否可能?

显然,有人能够以某种方式做到这一点:http://elmcity.info/fb_events?location=tokyo

4 个答案:

答案 0 :(得分:5)

确实可以使用基于位置的“搜索”来接收事件 为此,您需要您要搜索的位置的经度和纬度坐标以及具有user_events权限的access_token(我认为您也可以使用公共搜索)

这是一个FQL示例,您如何获取某个位置附近的所有事件。 (这会从您和您的朋友的事件中搜索):

$lat = "40";
$long = "30";

// using offset gives us a "square" on the map from where to search the events
$offset = 0.4;

$events = 'SELECT pic_big, name, venue, location, start_time, eid FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND start_time > '. $created_time .' OR uid = me()) AND start_time > '. $created_time .' AND venue.longitude < \''. ($long+$offset) .'\' AND venue.latitude < \''. ($lat+$offset) .'\' AND venue.longitude > \''. ($long-$offset) .'\' AND venue.latitude > \''. ($lat-$offset) .'\' ORDER BY start_time ASC '. $limit;

诀窍本身就在于场地。长度和场地使用。要从城市获取活动,只需获取城市坐标并根据需要调整偏移量。 如果您不知道如何使用FQL,请查看Facebook PHP SDK

答案 1 :(得分:2)

我正在努力解决同样的问题。看起来不太可能。我看到了几个问题:

  • 位置字段无法在pageplace表中搜索,
  • 填充事件位置的方式不一致:请参阅this page's events for an example。 (我个人填写了大部分内容。这些是FB更改,而不是用户错误。),
  • 根据计算结果,FQL没有AS语句进行查询,
  • Facebook将查询返回的项目数限制为相当低的值。

引用的网站似乎做的是查询event.description是否存在输入字符串。查询“宜家”,您将获得大量结果。绝对不是地理搜索。 (顺便说一句,该网站的源代码在GitHub)。

修改

好的,我错了。 Facebook确实公开了一种搜索方法,但仅限于Graph API。使用batch request功能,您可以执行以下一系列请求:

  • 查找已知纬度/经度的距离(以米为单位)内的所有place条目。图表api接受q=*搜索字符串以返回所有位置。
  • 查询event以查找上述返回位置的所有事件。

我打算玩这个。我会再次更新这篇文章,因为我更好地充实了这段代码。

答案 2 :(得分:1)

尝试此代码为我工作返回即将举行的公共活动的所有详细信息,其中包含可能是您所在位置的特定关键字

self.parentViewController

答案 3 :(得分:0)

我相信在http://elmcity.info/fb_events?location=tokyo他们并没有真正在东京搜索事件,他们只是执行这样的查询

https://graph.facebook.com/search?type=event&q=tokyo

(需要访问令牌,请参阅https://developers.facebook.com/tools/explorer?method=GET&path=search%3Ftype%3Devent%26q%3Dhaifa

请注意,此网址也有效 http://elmcity.info/fb_events?location=sport

我也在寻找一种使用fql检索公共事件的方法,到目前为止我没有找到任何方法。