Я использую php-библиотеку Google, которая работает с gmail api
. Я хочу получать все сообщения из моей учетной записи gmail.
Вот как я это делаю:
do {
$this->client->setUseBatch(false);
$messagesResponse = $service->users_messages->listUsersMessages('me', compact('pageToken'));
if ($messagesResponse->getMessages()) {
$batch = new Google_Http_Batch($this->client);
$this->client->setUseBatch(true);
foreach ($messagesResponse as $item) {
$request = $service->users_messages->get('me', $item->id, ['format' => 'raw']);
$batch->add($request);
}
$messages = array_merge($messages, $batch->execute());
$pageToken = $messagesResponse->getNextPageToken();
}
} while ($pageToken);
Когда я запускаю этот скрипт из CLI, я получаю следующую ошибку:
[Google_IO_Exception]
Время ожидания операции истекло через 100 000 миллисекунд при получении 57157107 байтов.
Если я прокомментирую строку с получением нового токена, я получу первые 100 сообщений, и это сработает. Но я не могу собрать их всех. У PHP нет таймаута, это google_io_exception, поэтому я не знаю, как решить проблему. Плюс любые советы по оптимизации были бы замечательны, так как единственное, что я знаю, это пакетные запросы, но я их использую.