过去两年中某一特定地点的所有facebook事件列表

过去两年中某一特定地点的所有facebook事件列表,facebook,facebook-graph-api,facebook-fql,Facebook,Facebook Graph Api,Facebook Fql,我想做什么 我正试图提取一份2012年和2013年在某个城市发生的所有公共facebook事件的列表。此外,对于其中的每一项,我想摘录以下内容: 事件名称 事件描述 日期 地方 参加/可能参加/谢绝的人数 到目前为止我都试过了 我在graph explorer中尝试了以下查询 search?q={Oslo}& [type={event}](#searchtypes) 我现在已经忽略了日期范围限制。我想我以后可以解决这个问题 问题 这是列出状态更新、故事、地点和其他所有内容,并将其作为J

我想做什么

我正试图提取一份2012年和2013年在某个城市发生的所有公共facebook事件的列表。此外,对于其中的每一项,我想摘录以下内容:

事件名称 事件描述 日期 地方 参加/可能参加/谢绝的人数 到目前为止我都试过了

我在graph explorer中尝试了以下查询

search?q={Oslo}& [type={event}](#searchtypes)
我现在已经忽略了日期范围限制。我想我以后可以解决这个问题

问题

这是列出状态更新、故事、地点和其他所有内容,并将其作为JSON对象返回。然而,这并不能提供我所需要的所有数据字段。有什么想法吗

旁注

我已经试着调查FQL,但显然不能做这样的搜索?如果可以的话,请随时提供帮助。我得到的最接近的结果是:

SELECT eid FROM event_member WHERE uid IN 
(SELECT page_id FROM place WHERE  
 distance(latitude, longitude, "37.76", "-122.427") < 1000)

但这只会给我未来的事情。如果它允许我也查看过去?

搜索您未以任何方式链接到的公共对象没有参与,没有邀请只能通过Graph Search API完成,而不是Graph API或FQL

目前。你会发现这个API并没有提供太多的可能性,所以如果你想实现你的目标,你必须拼凑一些东西。没有任何直接的方法可以做到这一点

如果我们收集有关事件的信息,这几乎就是我们所拥有的一切:

搜索类型 活动:

领域 您可以使用 ?字段=URL参数,与读取其他字段时相同 物体。例如,要仅获取事件的名称,可以执行以下操作 以下:

事件名称:

时间 在搜索公共帖子或用户新闻提要上的帖子时,您可以 可以使用“自”、“直到”和“限制”翻页结果 参数。从和直到都接受unix时间戳。寻呼时 回到过去,你应该使用,直到与限制在哪里 直到是上次创建的时间字段的unixtime值 由上一个查询返回的对象。寻呼时及时转发 您应该将since设置为创建时间的unixtime值 上次查询返回的第一个对象中的字段。请 注意,您只能在新闻提要中搜索大约1到2周

接下来要知道的是,结果集由事件组成,其中一个字段包含要查找的字符串q=Oslo。因此,奥斯陆可能出现在信息、描述、位置字段中的幸运和时区字段中的不幸中

然后,您必须手动筛选出结果。您可以搜索包含奥斯陆的事件,然后检查该位置是否确实包含奥斯陆。或者,如果你很容易找到特定地点的活动,我建议你搜索格式为City,Country的字符串,因为这是Facebook格式城市的方式。所以你可以这样做:

search?fields=location&q="Oslo, Norway"&type=event&since=1356994800
其中1356994800是此后您要检索事件的unixtime

可能的结果:

{
  "data": [
    {
      "location": "Oslo, Norway", 
      "id": "211893915563330", 
      "start_time": "2022-02-08T00:00:00"
    }, 
    {
      "location": "Lillestrøm, Norway", 
      "id": "641379122561097", 
      "start_time": "2015-09-06T09:00:00+0200"
    }, 
    {
      "location": "Oslo, Norway", 
      "id": "1434492323451716", 
      "start_time": "2014-11-06T20:45:00+0100"
    }, 
    {
      "location": "Oslo, Norway", 
      "id": "563423357073321", 
      "start_time": "2014-09-20"
    }, 

    ...

    {
      "location": "Oslo, Norway", 
      "id": "628230923890648", 
      "start_time": "2013-01-16T19:00:00+0100"
    }
  ],
}

然后,或许可以使用谷歌地图API来确定找到的位置是否确实靠近奥斯陆。也就是说,挪威离它很近。

看起来FQL可以给你想要的结果。 此FQL是您启动的FQL的扩展,它将显示2012年至2013年之间的所有事件,以及您想要的事件的数据:

select 
    eid, 
    name, 
    description, 
    location, 
    all_members_count, 
    attending_count, 
    unsure_count, 
    not_replied_count, 
    declined_count, 
    start_time, 
    end_time,
    venue 
from 
    event 
where     
    eid in 
    (
        select 
            eid, 
            start_time 
        from 
            event_member 
        where 
            uid in 
            (
                select 
                    page_id 
                from 
                    place 
                where 
                    distance(latitude, longitude, "37.76", "-122.427") < 1000
            ) and 
            start_time > "2012-01-01"
    ) and 
    end_time < "2013-01-01" and 
    end_time <> 'null' 

@StéphaneBruckert:不是真的,我已经知道如何将搜索限制在某个特定区域。我在寻找一种回顾过去的方式events@StéphaneBruckert:此外,如果你注意到……我已经在使用你建议的问题的答案作为副本。有没有办法获得事件的纬度和经度?@ArnabDatta yep:请看我的编辑。我在选择查询中添加了“地点”字段。你确定在活动描述中使用q搜索吗?如果我记得很清楚,是的。我的经验是,它没有,不幸的是,让我再看一眼。最近Facebook API上的情况发生了很大变化。
{
  "eid": 170775033066718, 
  "name": "Lavender Diamond at The Chapel - Dec 11", 
  "description": "Get tickets: http://ticketf.ly/SUb4w9\nDetails: http://www.thechapelsf.com/event/184715/\n\nVERY SPECIAL GUEST WILL BE ANNOUNCED DAY OF SHOW", 
  "location": "The Chapel", 
  "all_members_count": 92, 
  "attending_count": 30, 
  "unsure_count": 3, 
  "not_replied_count": 59, 
  "declined_count": 4, 
  "start_time": "2012-12-11T20:00:00", 
  "end_time": "2012-12-12T00:00:00", 
  "venue": {
    "street": "", 
    "city": "", 
    "state": "", 
    "country": "", 
    "latitude": 37.760503799154, 
    "longitude": -122.42123452518, 
    "id": 113634312122520
  }
}