2017-07-16 4 views
1

Ich versuche herauszufinden, wie man bessere Daten von der Facebook Open Graph API bekommt, da es scheint, dass sie jetzt wiederkehrende Ereignisse für Profilseiten unterstützen, doch scheint es keine Möglichkeit zu geben, diese korrekt von ihrer API zu erhalten das Startdatum als den ersten Tag, an dem das Ereignis ausgeführt wird, und das Enddatum als den letzten Tag, an dem es ausgeführt wird. Mein erster Versuch war, einfach zu überprüfen, ob die Ereignisse am selben Tag beginnen und enden, und davon auszugehen, dass sie wöchentlich auftreten. Wie Sie jedoch auf dieser Facebook-Seite sehen können, können Sie sie an mehreren Tagen zu verschiedenen Zeiten einrichten! Dh: Sonntag, 12.00 und Mittwoch um 16.00 Uhr:Dekodierung wiederkehrender Ereignisse von 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) 

Ich erhalte die Ereignisse dieses API:

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

Und hier ist ein Beispiel-API-Aufruf Verwendung der API (Sie benötigen jedoch Ihr eigenes Access Token, um es auszuführen):

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

und unten ist die Antwort, die wir zurückbekommen. Nun ist das Problem, wie Sie sehen können, die Anfangs- und Endzeiten und es gibt keine Daten, die anzeigen, wenn das Ereignis wiederkehrend ist und Facebook nichts tut, um sie zu reparieren, so dass sie als individuelle bevorstehende Ereignisse sinnvoll sind. Es gibt mehr Daten über die API, aber der Rest ist nur beschreibend, also habe ich das weggelassen.

{ 
    "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" 
    } 
    ], 
} 

Irgendwelche Ideen? Gibt es einen anderen API-Aufruf, um dieses Zeug zu bekommen? Der Haken ist, kann ich nicht einfach irgendein Ereignis übernehmen, die mehrere Tage erstreckt sich über ein wiederkehrendes Ereignis ist, weil Sie auch in Veranstaltungen setzen können, die buchstäblich wie diese mehrere Tage tun umspannen:

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

und die Antwort zu erhalten Das von der Open Graph API zurückgegebene was Sie erwarten würden, mit den Start- und Enddaten über den gesamten Zeitraum von Tagen und sogar beginnend um 8 Uhr und endend um 20 Uhr am letzten Tag.

{ 
    "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" 
    } 
    ], 
} 

Antwort

2

Sie können eine Facebook-API Graph Anfrage event_times Parameter, Abfrage Facebook-Seite wie die Angabe machen.

Ansonsten können Sie ein einzelnes Ereignis abfragen:

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

wo eventId ein Ereignis-ID Facebook ist.

1

„event_times“ = Array von Zeiten einer Multiinstanz Ereignis

Fügen Sie diese in die Liste der Felder, und dann Schleife um das Ergebnis.

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

wo pageId ist eine Facebook-Seite ID:

+0

Diese Antwort wäre nützlicher, wenn sie zeigen würde * wie * das gemacht werden könnte. So wie es jetzt aussieht, ist es ein bisschen spärlich. –

+0

Danke! Ich bin mir nicht sicher, ob ich das ursprünglich verpasst habe oder ob sie das nach meinem ursprünglichen Beitrag hinzugefügt haben, aber ich sehe jetzt diese Daten in der Ergebnismenge. –