2016-12-08 1 views
1

Я пытаюсь получить информацию о группе, используя default credentials. Мой кодGoogle_Service_Directory с учетными данными по умолчанию - продолжайте получать (403) Не авторизовано для доступа к этому ресурсу/api

 putenv('GOOGLE_APPLICATION_CREDENTIALS=' . XXX_SSO_SERVICE_ACCOUNT_CREDENTIALS_JSON); 
     $service_account_client = new \Google_Client(); 

     $service_account_client->useApplicationDefaultCredentials(); 

     $service_account_client->setScopes([ 
      \Google_Service_Directory::ADMIN_DIRECTORY_GROUP_READONLY, 
      \Google_Service_Directory::ADMIN_DIRECTORY_GROUP_MEMBER_READONLY, 
      \Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY, 
     ]); 

     $groups_service = new \Google_Service_Directory($service_account_client); 
     $groups = $groups_service->groups->listGroups([ 
      'userKey' => '[email protected]', 
      'domain' => 'xxx.com' 
     ]); 

я получаю сообщение об ошибке «Не авторизован на доступ к ресурсу/API»

У меня нет доступа к консоли администратора G Suite, но мне сказали, что perimissions являются правильно установить.

Я также попытался добавить электронную почту в user to impersonate

$service_account_client = new \Google_Client(['subject'=> '[email protected]']); 

, но я все еще получаю ту же ошибку.

ответ

1

В моем случае пользователь admin не был [email protected], а другой email. Поэтому правильный ответ здесь заключается в использовании

putenv('GOOGLE_APPLICATION_CREDENTIALS=' . XXX_SSO_SERVICE_ACCOUNT_CREDENTIALS_JSON); 
    $service_account_client = new \Google_Client(['subject'=> '[email protected]']);// Set the mail of an admin of G Suite 

    $service_account_client->useApplicationDefaultCredentials(); 

    $service_account_client->setScopes([ 
     \Google_Service_Directory::ADMIN_DIRECTORY_GROUP_READONLY, 
     \Google_Service_Directory::ADMIN_DIRECTORY_GROUP_MEMBER_READONLY, 
     \Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY, 
    ]); 

    $groups_service = new \Google_Service_Directory($service_account_client); 
    $groups = $groups_service->groups->listGroups([ 
     'userKey' => '[email protected]', 
     'domain' => 'xxx.com' 
    ]); 
Смежные вопросы