Я настроил все и работаю отлично,
в качестве тестирования я пытаюсь взять несколько отфильтрованных электронных писем и обновить их как чтение. Одиночное обновление работает с ниже кода < /p>
$mods = new Google_Service_Gmail_ModifyMessageRequest();
$mods->setRemoveLabelIds('UNREAD');
foreach ($messages as $message) {
try {
$message = $service->users_messages->modify($userId, $messageId, $mods);
print 'Message with ID: ' . $messageId . ' successfully modified.';
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
print 'Message with ID: ' . $message->getId() . '
';
}
< /code>
Я попытался направить документацию, чтобы выяснить, как установить параметры в функцию Batchmodify. Но нет подробностей об этом. Поэтому я прочитал исходные файлы в клиентской библиотеке Google и обнаружил, что он принимает только три параметра, как ниже.public function batchModify($userId, Google_Service_Gmail_BatchModifyMessagesRequest $postBody, $optParams = array())
< /code>
Итак, я попробовал ниже код < /p>
$mods = new Google_Service_Gmail_BatchModifyMessagesRequest();
$mods->setRemoveLabelIds(['UNREAD']);
$msgIdString = '';
foreach ($messages as $message) {
$id = $message->getId();
$msgIdString .= " $id";
}
echo $msgIdString;
try {
$message = $service->users_messages->batchModify($user, $mods);
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
< /code>
Но это дает мне ошибку < /p>
An error occurred: { "error": { "errors": [ { "domain": "global", "reason": "invalidArgument", "message": "No message ids specified." } ], "code": 400, "message": "No message ids specified." } }
< /code>
Так что моя проблема в том, что я все еще не мог найти место, где я должен поместить идентификаторы сообщения.
Подробнее здесь: https://stackoverflow.com/questions/555 ... nt-library