Facebook API возвращает только 25 событий Max?
-
13-10-2019 - |
Вопрос
Я тестирую свое новое приложение iframe,
Попытка получить все события пользователя, используя API Graph.
$tempevent = $facebook->api('/me/events', 'get', array("fields"=>"id, name, start_time"));
Так что это возвращает только 25 событий .. самые дальние события.
Любые идеи?
Только что проверил JS-версию .. тот же результат.
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
});
Решение
Используйте 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())'
));
Объяснение:
Здесь вы получаете все события от event
стол, где идентификатор события (eid
) является IN
а event_member
Таблица, где пользователь me()
связан с тем, является ли он attending
, unsure
, declined
, или же not_replied
.
Другие советы
Я рекомендую, что вы пытаетесь получить доступ к следующему URL https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN
. Анкет Прокрутить вниз. Вы увидите, что Facebook возвращает полученные на норме результаты. За data
PARAM (который возвращается SDK) У вас есть другой paging
парамет Этот содержит ссылки на дополнительные результаты, называемые next
а также previous
. Анкет Используйте их, чтобы получить больше событий.
Кроме того, если вы хотите получить больше событий на страницу, вы можете добавить limit
парамет среди Access_token. Например: https://graph.facebook.com/me/events?access_token=YOUR_ACCESS_TOKEN&limit=50
.
Удачи.