Требуется ли для исправления ошибки «домен не найден» учетная запись G-Suite? - PullRequest
0 голосов
/ 01 июня 2019

В двух словах:

возможно ли иметь серверный скрипт, который вставляет участников в группу Google, даже если у меня нет учетной записи G-Suite? И если да, то что означает Domain not found? 1006 *

Более подробно

Я пытаюсь помочь небольшой НПО автоматизировать часть их работы, управляя регистрацией новых пользователей. В частности, я настраиваю скрипт, который будет вставлять новых участников в группу Google.

После документа I:

код:

<?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 = 'adminzwp@local-volt-214313.iam.gserviceaccount.com';
$client->setSubject($user_to_impersonate);
echo "Built client\n";

$service = new Google_Service_Directory($client);
$member = new Google_Service_Directory_Member();
$member->setEmail("some_test@hotmail.fr");
$member->setRole("MEMBER");
$groupEmail="myGroup@googlegroups.com";
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.

1 Ответ

1 голос
/ 05 июня 2019

Каталог API поддерживает только аккаунты Google G Suite, Education и Government.

В любом случае, ошибка 404 связана не с состоянием вашей учетной записи, а с отсутствующим или неправильным доменом в ваших учетных данных. Если бы это был ваш случай, вы получите ошибку 403 "Not Authorized to access this resource/api"

Для получения дополнительной информации о требованиях API каталога: https://developers.google.com/admin-sdk/directory/v1/guides/prerequisites

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