我想执行 FQL 查询以检索特定区域中的所有公共事件(使用经度、纬度和最大距离或简单的位置名称)。你知道这是否可能吗?
显然,有人能够以某种方式做到这一点:http ://elmcity.info/fb_events?location=tokyo
我想执行 FQL 查询以检索特定区域中的所有公共事件(使用经度、纬度和最大距离或简单的位置名称)。你知道这是否可能吗?
显然,有人能够以某种方式做到这一点:http ://elmcity.info/fb_events?location=tokyo
确实可以使用基于位置的“搜索”接收事件为此,您需要要搜索的位置的经度和纬度坐标以及具有 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
我现在正在努力解决同样的问题。看起来不可能。我看到了几个问题:
page
orplace
表中不可搜索,AS
根据计算结果查询的语句,并且引用的站点似乎做的是查询event.description
输入字符串的存在。查询“宜家”,你会得到很多结果。绝对不是地理搜索。(顺便说一句,该网站的源代码在GitHub 上)。
编辑:
好吧,我错了。Facebook 确实公开了一种搜索方法,但仅在Graph API中。使用批处理请求功能,您可以执行一系列请求:
place
已知纬度/经度距离(以米为单位)内的所有条目。图 api 接受q=*
搜索字符串以返回所有地点。event
以查找上面返回的地点的所有事件。我要玩这个。随着我更好地充实这段代码,我将再次更新这篇文章。
试试这个对我有用的代码返回即将到来的公共活动的所有详细信息,其中包含可以是您的位置的特定关键字
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'
我相信在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 检索公共事件的方法,但到目前为止我还没有找到。