【发布时间】: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 调用(但是您需要自己的访问令牌来执行它):
下面是我们得到的响应。现在,您可以看到问题是开始和结束时间,没有数据表明事件是否重复发生,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