API Gmail php listUserMesages() null
Я делаю очень простой тест Gmail API с использованием PHP. Я использую код, предоставленный Google (после успешной авторизации через OAuth с последующим успешным тестовым запуском кода 200 на инструментальных средствах API. Моя ошибка:
Неустранимая ошибка PHP: вызов функции-члена listUsersMessages() в null
Строка, которая терпит неудачу:
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
Полный код:
$userId = 'my gmail id';
$service = 'my api client id, for example,12356686375';
$messages = listMessages($service,$userId);
/**
* Get list of Messages in user's mailbox.
*
* @param Google_Service_Gmail $service Authorized Gmail API instance.
* @param string $userId User's email address. The special value 'me'
* can be used to indicate the authenticated user.
* @return array Array of Messages.
*/
function listMessages($service, $userId) {
$pageToken = NULL;
$messages = array();
$opt_param = array();
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
if ($messagesResponse->getMessages()) {
$messages = array_merge($messages, $messagesResponse->getMessages());
$pageToken = $messagesResponse->getNextPageToken();
}
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
} while ($pageToken);
foreach ($messages as $message) {
print 'Message with ID: ' . $message->getId() . '<br/>';
}
return $messages;
}
1 ответ
Как упомянуто @Morfinismo, $service
переменная должна иметь инициализированную службу Gmail, а не идентификатор клиента.
Так должно быть:
// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Gmail($client);
Вы можете следовать этому быстрому старту.