2

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

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

4

4 回答 4

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

于 2012-06-05T15:39:59.853 回答
2

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

  • 位置字段在pageorplace表中不可搜索,
  • 事件位置的填充方式不一致:有关示例,请参阅此页面的事件。(我个人填充了其中的大部分。这些是 FB 更改,而不是用户错误。),
  • FQL 没有AS根据计算结果查询的语句,并且
  • Facebook 将查询返回的项目数量限制为相当低的值。

引用的站点似乎做的是查询event.description输入字符串的存在。查询“宜家”,你会得到很多结果。绝对不是地理搜索。(顺便说一句,该网站的源代码在GitHub 上)。

编辑:

好吧,我错了。Facebook 确实公开了一种搜索方法,但仅在Graph API中。使用批处理请求功能,您可以执行一系列请求:

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

我要玩这个。随着我更好地充实这段代码,我将再次更新这篇文章。

于 2012-06-04T14:01:22.627 回答
1

试试这个对我有用的代码返回即将到来的公共活动的所有详细信息,其中包含可以是您的位置的特定关键字

SELECT eid,name,description,venue,creator,location,ticket_uri,start_time, eid,host,not_replied_count,pic_square,pic_big,unsure_count,attending_count,declined_count,all_members_count FROM event WHERE start_time > now() AND CONTAINS("your location name") AND privacy='open'
于 2015-07-24T12:31:02.890 回答
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 检索公共事件的方法,但到目前为止我还没有找到。

于 2012-09-06T13:17:50.497 回答