Получить роль пользователя / разрешения для аутентифицированного пользователя Gmail API - PHP SDK - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь получить роль электронной почты (это супер администратор) с этим PHP кодом:

$email = 'an email with the same domain';
$credentials_file = '../service-account.json';
putenv('GOOGLE_APPLICATION_CREDENTIALS='.$credentials_file);

// Initialize Google Client
$client = new Google_Client();

$client->useApplicationDefaultCredentials();
// scopes to change signature
$client->setScopes(['https://www.googleapis.com/auth/gmail.settings.basic',
'https://www.googleapis.com/auth/gmail.settings.sharing',
'https://www.googleapis.com/auth/gmail.readonly', 'https://www.googleapis.com/auth/userinfo.profile']);

// Initialize Gmail
$gmail = new Google_Service_Gmail($client);
// set signature
$signature = new Google_Service_Gmail_SendAs();
// update signature

Я использую последний PHP SDK. Электронная почта всегда находится в том же домене, что и электронная почта супер-администратора, но он не всегда является супер-администратором.

Я попробовал:

var_dump($gmail->users->getProfile($email));

, но я получаю сообщение об ошибке:

failedPrecondition, сообщение: Плохой запрос "

Я прочитал отсюда - Google Docs , что мне нужно одно из перечисленных разрешений, и у меня есть https://www.googleapis.com/auth/gmail.readonly, который я добавил в консоль администратора Google для супер администратора.

Как я могу получить роль электронной почты пользователя с тем же доменом?

1 Ответ

1 голос
/ 10 мая 2019

Исходя из клиентской документации PHP API , вам нужно добавить $client->setSubject($email) перед вызовом new Google_Service_Gmail($client), потому что вам нужно выдать себя за пользователя перед вызовом Gmail API.

...