Facebook API gibt nur 25 Ereignisse max zurück?
-
13-10-2019 - |
Frage
Ich teste meine neue Iframe -App,
Versuchen Sie, alle Ereignisse eines Benutzers mit der Graph -API zu erhalten.
$tempevent = $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time"));
Es gibt also nur 25 Ereignisse zurück. Die am weitesten entfernten Ereignisse.
Irgendwelche Ideen?
Ich habe gerade die JS-Version ausprobiert. Gleiches Ergebnis.
FB.api('/me/events', function(response) {
console.log("event id: " + response.data[0].id); //k
console.log("event id: " + response.data[24].id); //k
console.log("event id: " + response.data[25].id); //not k
});
Lösung
Verwenden Sie FQL:
$tempevent = $this->facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT eid, name, start_time FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = me())'
));
Erläuterung:
Hier bekommen Sie alle Ereignisse aus dem event
Tisch, wo die Ereignis -ID (eid
) ist IN
das event_member
Tabelle, wo der Benutzer me()
ist verbunden mit, ob er ist attending
, unsure
, declined
, oder not_replied
.
Andere Tipps
Ich empfehle Sie, Sie versuchen, auf die folgende URL zuzugreifen https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN
. Runterscrollen. Sie werden sehen, dass Facebook paginierte Ergebnisse zurückgibt. Neben der data
Param (der vom SDK zurückgegeben wird) Sie haben einen anderen paging
Param. Dieser enthält Links zu weiteren Ergebnissen, genannt next
und previous
. Verwenden Sie sie, um mehr Ereignisse abzurufen.
Wenn Sie mehr Ereignisse pro Seite abrufen möchten, können Sie die hinzufügen limit
Param unter Access_Token. Zum Beispiel: https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN&limit=50
.
Viel Glück.