使用 Facebook Graph API 按位置搜索公共事件

Posted

技术标签:

【中文标题】使用 Facebook Graph API 按位置搜索公共事件【英文标题】:Search for public events by location using the Facebook Graph API 【发布时间】:2015-08-26 09:53:19 【问题描述】:

帮助!我正在尝试。我看到很多帖子都说现在使用当前版本的 Graph API 或 FQL 是不可能的。但是,我确实看到了具有此功能的网站以及许多 FQL 解决方法。对我来说没有一个成功。

这是我从 API 请求的搜索参数

/search?q=*&type=event&center=10.4434041,-61.419835&distance=1000

我希望这将是答案,仅仅是因为它似乎涵盖了类型事件和特定位置。但是,我错了,我得到了 30 种不同语言的 20 年后免费三星银河的相同营销活动列表。

所以我想查询该特定位置的场地(地点),结果是成功的,然后从这些场地中获取 id 并逐个查询每个 id 以查看是否有与该特定位置相关的事件场地。我不知道如何使用第一个搜索查询的结果来处理查询的后半部分,但这就是我目前所拥有的。

/search?type=place&q=*&center=10.4434041%2C-61.419835&distance=1000&fields=name,id

退货


  "data": [
  
    "name": "Valid Venue!",
    "id": "740199068928858"
  ,
  
    "name": "Valid Venue!",
    "id": "522158807878843"
  ,
  
    more valid venue data!!
  

我还应该注意,这个场地搜索会给我该位置的所有列出的地方,我知道这非常糟糕并且完全没有效率,但我完全没有想法。

我不确定这是否是正确的路径,但这似乎是我能想到的按位置获取事件的最合理的解决方案。任何指导或根本将不胜感激!

谢谢!!

【问题讨论】:

github.com/tobilg/facebook-events-by-location 【参考方案1】:

中所述,这曾经有效(如果您有 v2.0 应用,并且该事件是由具有位置/地点集的页面创建的,则在 2016 年 8 月 7 日之前仍然有效) Facebook Graph API Get All Events For Latitude and Longitude

例如。使用 Graph API 本身,不可能在一次查询中搜索附近的事件。

你可以做的是

    搜索附近的地方 查询 1. 找到的每个地点的事件

请记住,您必须根据已通过的事件等进行过滤。不幸的是,这非常低效...

编辑 2017-12-20

您可以在此用例中使用https://github.com/tobilg/facebook-events-by-location-core。

【讨论】:

非常感谢。我已经看到了你关于这个话题的答案,你看起来像是要找的那个人(或女孩)。尝试了解决方案,它的工作原理!再次感谢!! 很高兴我能帮上忙 :-) 无法弄清楚如何做#2...你能举个例子吗? github.com/tobilg/facebook-events-by-location-core/issues/29 - 它不再起作用了【参考方案2】:

对于 2.11 版以后,我认为实现此目的的最佳/最简单方法是将您的位置值添加到查询本身中,因为 q= 看起来不仅仅是您的活动名称。

例子:

https://graph.facebook.com/v2.11/search?q=marathon%20dublin&type=event&fields=name,id,category,description,place&access_token=ACCESSTOKEN

返回以下事件(其中包括)。您可以看到都柏林是从 Place 字段中提取的,因为名称中没有提到它


name: "Vhi Women's Mini Marathon 2018",
id: "1803645183261605",
description: "The Vhi Women's Mini Marathon is returning to a Sunday 
for 2018!! This year, on 3rd June 2018, we want you to join us by 
walking, jogging or running 10k in Dublin. Sign up from 7 March and 
follow our 12 week training and nutrition plan on line and with the 
The Herald each Wednesday and Saturday. Don't forget to follow us on 
facebook for lots of competitions and important information about the 
event.",
place: 
name: "Fitzwilliam Place, Dublin, County Dublin, Ireland"


【讨论】:

以上是关于使用 Facebook Graph API 按位置搜索公共事件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Facebook Graph Api 获取所有位置 ID 与特定给定位置 ID 相同的 Facebook 公共事件?

Facebook Graph API - 按用户标签获取照片

Facebook Graph API 不返回位置,为啥?

Facebook Graph API:从某个位置获取每个签到时间的信息

按距离排序 Facebook Places 结果

Facebook Graph API 根据位置搜索公共事件