从Facebook Open Graph API解码循环事件?

问题描述:

我正在努力解决如何从Facebook Open Graph API中获取更好的数据,因为它看起来他们现在支持配置文件页面的周期性事件,但是当他们返回时,似乎没有任何方法可以从API中正确地获取它们开始日期为事件运行的第一天,结束日期为运行的最后一天。我的第一个尝试是简单地检查事件是在同一天开始还是结束,并假设它们是每周发生的,但正如您从Facebook页面上看到的那样,他们实际上允许您在不同的时间将其设置为在多天内发生!即:周日下午12:00和星期三下午4:00:从Facebook Open Graph API解码循环事件?

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​​(但您需要自己的Access Token来执行它):

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图形请求指定event_times参数,查询的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。

“event_times” =的多实例事件

次阵列添加到您的字段列表,然后周围的结果循环。

+0

如果这个答案显示*可能会做得如何,这个答案会更有用。现在,它有点稀疏。 –

+0

谢谢!不知道如果我最初错过了它,或者如果他们在我原来的帖子后添加了这个,但我现在看到返回结果集中的这些数据。 –