Добавление участника в группу Google с помощью Directory API с неосновным адресом электронной почты - PullRequest
0 голосов
/ 10 июля 2020

При использовании Google Directory API для организации групп Google в G Suite я столкнулся с проблемой при добавлении адресов GMail, не входящих в домен G Suite. Когда я запускаю

$groupKey = 'MyGroup@mydomain.com';
$member = 'example@gmail.com';

$serviceAccountName = 'XXX@developer.gserviceaccount.com';
$scopes = 'https://www.googleapis.com/auth/admin.directory.group';
$privateKeyFile = '/certs/googleapi-privatekey.p12';

$my_google_client = new Google_Client();
$my_google_client->setApplicationName('API Project');
$my_google_client->setScopes($scopes);

$cred = new Google_Auth_AssertionCredentials($serviceAccountName, $scopes, file_get_contents($privateKeyFile));
$cred->sub = 'admin@mydomain.com';

$my_google_client->setAssertionCredentials($cred);
$my_google_client->getAuth()->refreshTokenWithAssertion();

$dir = new Google_Service_Directory($my_google_client);
$member = new Google_Service_Directory_Member();
$member->setEmail($address);
$member->setRole('MEMBER');
$dir->members->insert($groupKey, $member);

, результат зависит от адреса электронной почты, указанного в $member: если фактический адрес электронной почты example@gmail.com, он работает, но если адрес на самом деле example@googlemail.com, вставляя член, новый член группы не работает, хотя этот человек сможет получать электронные письма по этому адресу.

До сих пор я рекомендовал новым членам использовать свои фактические адреса, потому что это также позволяет им отправлять электронные письма в эту группу. Однако теперь у меня есть первый случай, когда новый член запрашивает добавление в группу с использованием адреса, такого как example+extra@gmail.com.. И я понимаю, что использование расширения, а не использование его / ее фактического адрес электронной почты.

Когда я пытаюсь добавить адрес, выдается сообщение Google_Service_Exception, содержащее «(404) Resource Not Found», и адрес не добавляется в группу (что является тем же поведением при добавлении участника с адресом GMail с использованием псевдонима, такого как example@gmail.com, когда example@googlemail.com является «реальным» адресом электронной почты).

Каков рекомендуемый способ добавления таких адресов в Google Группа с помощью Directory API? Цель состоит в том, чтобы добавить участника с помощью API каталога таким образом, чтобы он / она получал все электронные письма от группы по адресу example+extra@gmail.com? Возможность отправлять электронные письма группе с использованием адреса без расширения было бы неплохо, но это вторично. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...