Facebook Api sólo devuelve 25 eventos max?
-
13-10-2019 - |
Pregunta
Estoy probando mi nueva aplicación iframe,
tratando de obtener todos los eventos de un usuario, utilizando la API gráfica.
$tempevent = $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time"));
por lo que sólo devuelve 25 eventos .. los acontecimientos más lejanos.
¿Alguna idea?
Sólo desprotegido el JS-Versión .. mismo resultado.
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
});
Solución
Uso 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())'
));
Explicación:
Aquí vas a encontrar todos los eventos de la tabla event
donde el Identificación del evento (eid
) es IN
la href="http://developers.facebook.com/docs/reference/fql/event_member/" rel="nofollow"> event_member
tabla me() usuario está vinculado a, si es attending
, unsure
, declined
o not_replied
.
Otros consejos
Se lo recomiendo intenta acceder a la siguiente URL https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN
. Desplazarse hacia abajo. Verá que vuelve facebook paginados resultados. Al lado del parámetro data
(que se devuelve por el SDK) tiene otro parámetro paging
. Éste contiene enlaces a otros resultados, llamada next
y previous
. Usarlos para recuperar más eventos.
Además, si desea recuperar más eventos por página puede agregar el parámetro limit
entre señal_acceso. Por ejemplo:. https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN&limit=50
Buena suerte.