Facebook Api retourne seulement 25 événements max?
-
13-10-2019 - |
Question
Je teste ma nouvelle application iframe,
essayer d'obtenir tous les événements d'un utilisateur, en utilisant le graphique api.
$tempevent = $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time"));
il ne retourne que 25 événements .. les événements les plus éloignés.
Toutes les idées?
Il suffit de vérifier la JS-Version .. même résultat.
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
});
La solution
Utilisation 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())'
));
Explication:
Ici, vous obtenez tous les événements de la table event
où id événement (eid
) est IN
la table event_member
où le me()
utilisateur est lié à, s'il est attending
, unsure
, declined
ou not_replied
.
Autres conseils
Je recomment vous essayez d'accéder à la https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN
URL suivante. Défiler vers le bas. Vous verrez que les retours facebook paginés résultats. A côté du param data
(qui est retourné par le sdk) vous avez une autre paging
param. Celui-ci contient des liens vers plus de résultats, appelés next
et previous
. Utilisez-les pour récupérer d'autres événements.
En outre, si vous souhaitez récupérer d'autres événements par page, vous pouvez ajouter le limit
parmi access_token param. Par exemple:. https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN&limit=50
Bonne chance.