Я пытаюсь получить доступ к учетной записи G-Mail через учетную запись службы Google. У меня нет учетной записи G-Suite.
В прошлом году я настроил доступ к Google Диску с помощью служебной учетной записи, и он отлично работает. Попытка сделать то же самое с G-Mail.
В настоящее время я просто тестирую это с моей учетной записью G-Mail. У меня уже есть сервисный аккаунт, который я использовал с Google Drive.
Мне совершенно не ясно, требуется ли учетная запись G-Suite для служебной учетной записи для работы с G-Mail. На основании некоторых статей я нашел, что это звучит так, но на основании других это не требуется.
$connected = false;
$connected = $gMail->connectToGmail();
if ($connected)
{
echo "Connection to GMail established!";
$service = new Google_Service_Gmail($gMail->client);
$user = 'me';
$results = $service->users_labels->listUsersLabels($user);
if (count($results->getLabels()) == 0) {
print "No labels found.\n";
} else {
print "Labels:\n";
foreach ($results->getLabels() as $label) {
printf("- %s\n", $label->getName());
}
}
}
$ gMail-> connectToGmail () получает ссылку на клиента с помощью Google_Service_Gmail :: GMAIL_READONLY (также пробовал Google_Service_Gmail :: GMAIL_LABELS)
Этот код от https://developers.google.com/gmail/api/quickstart/php, и я ожидал, что это даст мне список ярлыков в G-mail. Однако он завершается с ошибкой 400 и возвращает этот jSON:
{"error": {"errors": [{"domain": "global", "reason": "failedPrecondition", "message": "Bad Request"}], "code": 400, "message ":" Неверный запрос "}}
Ошибка возвращается при вызове $ service-> users_labels-> listUsersLabels ().
Я не уверен, где проблема и в чем именно проблема. Я почти уверен, что есть шаг, который мне не хватает, просто не знаю, что это.
В консоли API видно, что приходит запрос на gmail.users.labels.list. Если я проверяю gmail.users.labels.list в API Explorer, он работает нормально и выдает список меток. .