В двух словах:
возможно ли иметь сценарий на стороне сервера, который вставляет участников в группу Google, даже если у меня нет учетной записи G-Suite? И если да, то что означает Domain not found
?
Подробнее
Я пытаюсь помочь небольшой НПО автоматизировать часть их работы по управлению регистрацией новых пользователей. В частности, я настраиваю сценарий, который будет вставлять новых участников в группу Google.
Следуя документу I:
- создал учетную запись службы на (из https://console.developers.google.com/iam-admin/serviceaccounts)
- включил требуемый API
- запустите следующий скрипт, используя api php client
код:
<?php
require __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName("GoogleGroup MA AutoUpdate");
$client->setScopes(array(
Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY,
Google_Service_Directory::ADMIN_DIRECTORY_GROUP
));
$user_to_impersonate = '[email protected]';
$client->setSubject($user_to_impersonate);
echo "Built client\n";
$service = new Google_Service_Directory($client);
$member = new Google_Service_Directory_Member();
$member->setEmail("[email protected]");
$member->setRole("MEMBER");
$groupEmail="[email protected]";
echo "going to insert member\n";
$service->members->insert( $groupEmail, $member);
echo "DONE\n";
но когда этот скрипт запускается, он терпит неудачу с этим выводом
Built client
going to insert member
PHP Fatal error: Uncaught Google_Service_Exception: {
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "Domain not found."
}
],
"code": 404,
"message": "Domain not found."
}
}
in /some/path/vendor/google/apiclient/src/Google/Http/REST.php:118
Stack trace:
#0 /some/path/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#1 /some/path/vendor/google/apiclient/src/Google/Task/Runner.php(176): Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#2 /some/path/vendor/google/apiclient/src/Google/Http/REST.php(58): Google_Task_Runner->run()
#3 /some/path/vendor/google/apiclient/src/Google/Client.php(808): Google_Http_REST::execute(Object(GuzzleHttp\Client), Obje in /documents/zwp/helloasso2googlegroups/vendor/google/apiclient/src/Google/Http/REST.php on line 118
И я не понимаю, что означает эта ошибка, и все документы, которые я нахожу, заставляют меня думать, что они связаны с понятием домена, который я должен связать с учетной записью G Suite, но я не совсем уверен.
Короче говоря: я был бы очень рад, если бы вы дали мне советы по исправлению этой ошибки или подтвердили, что я не могу сделать это без учетной записи G-Suite.