Я пытаюсь загрузить свои входящие сообщения Facebook через php SDK 4 и сохранить их в базе данных (используя Guzzle для разбивки на страницы). Скорость пагинации очень низкая, а также через определенное время достигает предела API. Что является стандартным способом загрузки моего входящего сообщения, а также, как я могу улучшить скорость разбивки на страницы. Вот мой код для разбивки на страницы:
function url($url){
$client = new Client();
$response=$client->get($url);
$body = $response->json();
return $body['paging']['next'];
}
$client = new Client();
$response = $client->get($x['comments']->paging->next);
$body = $response->json();
$url = $body['paging']['next'];
$count = 0 ;
while(true){
$result = url($url);
if(empty($result))
break;
echo $count . ": " . $result . "<br>";
$url = $result;
$count = $count + 1;
}
Нет другого способа, кроме использования нумерации страниц и увеличения лимита, чтобы вы получали больше результатов за вызов API. Но параметр limit … ну … ограничен 🙂 — Таким образом, вы не можете просто использовать ограничение 1000.
Использование параметра limit будет выглядеть так: /me/inbox?limit=100
Имейте в виду, что вы можете получить доступ только к своему входному почтовому ящику, вы не получите read_mailbox
одобрен для вашего приложения:
Это разрешение предоставляется приложениям, создающим клиент под Facebook, на платформах, где Facebook еще не доступен. Например, приложения Android и iOS не будут одобрены для этого разрешения. Кроме того, веб-приложения, приложения для настольных ПК, автомобильные и телевизионные приложения не получат это разрешение.
Источник: https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_mailbox
Других решений пока нет …