электронная почта — ListMessages с Google Gmail OAuth2 API

Я создаю почтовый веб-клиент, который поддерживает учетные записи Google, используя Google OAuth2 API, вход в систему работает нормально, и разрешения для Gmail запрашиваются при первом входе в систему, но я не понимаю, как получать почту из учетной записи пользователя. Согласно Документация по Google Gmail API, Я создаю класс для использования этих API, но я не понимаю, как его использовать ..

class Gmail
{
/*
* 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;
}

function getMessage($service, $userId, $messageId) {
try {
$message = $service->users_messages->get($userId, $messageId);
print 'Message with ID: ' . $message->getId() . ' retrieved.';
return $message;
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
}

}

В моем шаблоне я назначил класс переменной $ Gmail и начал использовать:

$gmailMessages = $Gmail->listMessages(GOOGLE_AUTH_API_KEY, $user_inbox["Profile_Email"]);

но я думаю, что это не правильный метод .. Что я должен передать функции?
Благодарю.

редактировать: Я уже включил PHP-клиент Google Api в мой проект.

редактировать: Решено, посмотреть решение здесь

2

Решение

Решено, я забыл настроить и вызвать $ client, теперь моя функция:

function listMessages($userId) {
$client_id = API_CLIENT_ID;
$client_secret = API_SECRET;
$redirect_uri = API_REDIRECT_URL;
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://mail.google.com/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile ");
$client->setAccessType("offline");
$service = new Google_Service_Gmail($client);
$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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]