查找公共事件的 FQL 查询
Posted
技术标签:
【中文标题】查找公共事件的 FQL 查询【英文标题】:FQL query for finding public event 【发布时间】:2012-06-08 12:44:47 【问题描述】:我想执行 FQL 查询以检索特定区域中的所有公共事件(使用经度、纬度和最大距离或仅使用位置名称)。不知道有没有可能?
显然,有人能够做到这一点,不知何故:http://elmcity.info/fb_events?location=tokyo
【问题讨论】:
Get event list based on location的可能重复 您会在这个问题中找到答案。 facebook.***.com/questions/9339936/…希望它仍然有效! 【参考方案1】:确实可以使用基于位置的“搜索”接收事件 为此,您需要您要搜索的位置的经度和纬度坐标以及具有 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
【讨论】:
【参考方案2】:我现在正在努力解决同样的问题。看起来不可能。我看到了几个问题:
page
或place
表中无法搜索位置字段,AS
语句,并且
Facebook 将查询返回的项目数量限制为相当低的值。
所引用的站点似乎要做的是查询event.description
以获取输入字符串的存在。查询“宜家”,你会得到很多结果。绝对不是地理搜索。 (顺便说一句,该网站的源代码在GitHub)。
编辑:
好吧,我错了。 Facebook 确实公开了一种搜索方法,但仅限于Graph API。使用batch request 功能,您可以执行一系列请求:
在已知纬度/经度的距离(以米为单位)内查找所有place
条目。图形 api 接受 q=*
作为搜索字符串以返回所有地点。
查询event
以查找上面返回的地点的所有事件。
我要玩这个。随着我更好地充实这段代码,我会再次更新这篇文章。
【讨论】:
你完全正确。我真的不明白为什么将研究限制在描述领域。那个 API 会更强大! facebook.***.com/questions/9339936/… 有一种按位置获取事件的好方法。希望它仍然有效! @DMCS 这很好。我得试试看它是否仍然有效。 我试过了: 1)是我的印象,还是太慢了? 2)它使您可以仅检索您的朋友要去的事件。这是相当有限的。总比没有好 @cpilko,您可以在某些东西开始工作后立即发布一个示例吗?如果我能做对,我也会这样做。谢谢!【参考方案3】:试试这个对我有用的代码返回即将到来的公共活动的所有细节,其中包含一个特定的关键词,可以是你的位置
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'
【讨论】:
【参考方案4】:我相信在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 检索公共事件的方法,但到目前为止我没有找到任何方法。
【讨论】:
以上是关于查找公共事件的 FQL 查询的主要内容,如果未能解决你的问题,请参考以下文章