【问题标题】:Decoding recurring events from Facebook Open Graph API?从 Facebook Open Graph API 解码重复事件?
【发布时间】:2017-12-21 05:56:42
【问题描述】:

我正在尝试研究如何从 Facebook Open Graph API 获取更好的数据,因为它们现在支持个人资料页面的重复事件,但似乎没有任何方法可以从他们的 API 中正确获取数据,因为它们返回开始日期作为事件运行的第一天,结束日期作为它运行的最后一天。我的第一次尝试是简单地检查事件是否在同一天开始和结束,并假设它们每周发生,但正如您从这个 Facebook 页面中看到的那样,它们实际上允许您将它们设置为在不同时间的多天发生!即:周日中午 12:00 和周三下午 4:00:

https://www.facebook.com/pg/hobbytownewportnews/events

JUL 18:  Micro FPV - Every Tuesday & Saturday (Jun 17 - Dec 16)
JUL 22: Gunpla Build Day - Every Saturday (Jun 17 - Dec 30)
JUL 16: RC Drifting - Every Wednesday & Sunday (Jun 18 - Dec 13)
JUL 20: Pizza & Plastics - Every Thursday (Jun 22 - Dec 28)

我正在使用此 API 获取事件:

https://developers.facebook.com/docs/graph-api/reference/page/events/

这里是一个使用 API 的示例 API 调用(但是您需要自己的访问令牌来执行它):

https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=hobbytownewportnews%2Fevents%3Ftime_filter%3Dupcoming%26fields%3Did%2Cname%2Cend_time%2Cstart_time&version=v2.9

下面是我们得到的响应。现在,您可以看到问题是开始和结束时间,没有数据表明事件是否重复发生,Facebook 没有采取任何措施来修复它们,因此它们作为单独的即将发生的事件是有意义的。通过 API 返回的数据更多,但其余部分只是描述性的,所以我省略了。

{
  "data": [
    {
      "id": "272398049894766",
      "name": "Pizza & Plastics - Every Thursday",
      "end_time": "2017-12-28T20:00:00-0500",
      "start_time": "2017-06-22T16:00:00-0400"
    },
    {
      "id": "334856180266567",
      "name": "RC Drifting - Every Wednesday & Sunday",
      "end_time": "2017-12-13T20:00:00-0500",
      "start_time": "2017-06-18T12:00:00-0400"
    },
    {
      "id": "308995412882009",
      "name": "Gunpla Build Day - Every Saturday",
      "end_time": "2017-12-30T14:00:00-0500",
      "start_time": "2017-06-17T12:00:00-0400"
    },
    {
      "id": "1473270249392907",
      "name": "Micro FPV - Every Tuesday & Saturday",
      "end_time": "2017-12-16T18:00:00-0500",
      "start_time": "2017-06-17T10:00:00-0400"
    }
  ],
}

有什么想法吗?是否有不同的 API 调用来获取这些东西?问题是我不能简单地假设任何跨越多天的事件都是重复发生的事件,因为您也可以放入像这样跨越多天的事件:

https://www.facebook.com/events/1854268061514839

从 Open Graph API 中获取的响应会返回您所期望的结果,开始和结束日期跨越整组日期,甚至从上午 8 点开始,到最后一天晚上 8 点结束。

{
  "data": [
    {
      "id": "1854268061514839",
      "name": "2017 ROAR off road electric 8th and 4wd SCT electric Nationals",
      "end_time": "2017-07-23T20:00:00-0700",
      "start_time": "2017-07-20T08:00:00-0700"
    }
  ],
}

【问题讨论】:

    标签: facebook api facebook-graph-api facebook-events


    【解决方案1】:

    "event_times" = 多实例事件的时间数组

    将此添加到您的字段列表中,然后循环结果。

    【讨论】:

    • 如果这个答案展示了可能完成的如何,它会更有用。就目前而言,它有点稀疏。
    • 谢谢!不确定我最初是否错过了这个,或者他们是否在我原来的帖子之后添加了这个,但我现在在返回结果集中看到了这些数据。
    【解决方案2】:

    您可以通过指定event_times 参数发出 Facebook API 图请求,查询 Facebook 页面,如下所示:

    https://graph.facebook.com/v2.10/<pageId>/events?fields=start_time,end_time,event_times
    

    pageId 是 Facebook 页面 ID。

    否则你可以查询单个事件:

    https://graph.facebook.com/v2.10/<eventId>?fields=start_time,end_time,event_times
    

    eventId 是 Facebook 事件 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      相关资源
      最近更新 更多