2016-12-08 34 views
1

default credentialsを使用してグループに関する情報を取得しようとしています。私のコードは私がG Suiteの管理コンソールへのアクセス何をしたんが、私はperimissionsであることを言われてきたデフォルトの資格情報を持つGoogle_Service_Directory - このリソース/ apiにアクセスする権限がありません(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' 
     ]); 

です正しく設定してください。

私もuser to impersonate

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

の電子メールを追加しようとしましたが、私はまだ同じエラーを取得します。

答えて

1

私の場合、adminユーザーは[email protected]ではなく別のメールです。正しい答えはここにあります。

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' 
    ]); 
関連する問題