我想执行 FQL 查询来检索特定区域中的所有公共(public)事件(使用经度、纬度和最大距离或简单的位置名称)。你知道这是否可能吗?
显然,有人能够以某种方式做到这一点:http://elmcity.info/fb_events?location=tokyo
最佳答案
确实可以使用基于位置的“搜索”来接收事件 为此,您需要要搜索的位置的经度和纬度坐标以及具有 user_events 权限的 access_token(我认为您也可以使用公共(public)搜索)
这是一个 FQL 示例,如何获取某个位置附近的所有事件。 (这从您和您 friend 的事件中搜索):
$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;
技巧本身就在于venue.longitude 和venue.latitude 的使用。要获取某个城市的事件,只需获取城市坐标并根据您的需要调整偏移即可。 如果您不知道如何使用 FQL,请查看 Facebook PHP SDK
关于facebook - 用于查找公共(public)事件的 FQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881388/