Я пытаюсь использовать API-интерфейс Google Service Directory для вывода списка ASP пользователей (этап 1), поскольку я хочу иметь возможность их удалять (этап 2).
Я использую служебную учетную запись с включенным делегированным доступом и включенной областью действия https://www.googleapis.com/auth/admin.directory.user.security.
Я также пытался олицетворять учетную запись администратора, но это также не удается.
Я включил тестовый код ниже.
Я пошел к менеджеру GCP API, чтобы создать учетную запись службы, включив делегирование по всему домену. Затем включил этот идентификатор клиента для доступа к API в консоли администратора G-Suite с этой областью https://www.googleapis.com/auth/admin.directory.user.security
require '../libs/vendor/autoload.php';
$user = "standardUser@domain.com";
$admin = "adminAccount@domain.com";
putenv('GOOGLE_APPLICATION_CREDENTIALS=<some_path_here>googleAuth.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(array('https://www.googleapis.com/auth/gmail.settings.basic','https://www.googleapis.com/auth/admin.directory.user.security'));
$client->setApplicationName("Dummy App Name");
$client->setSubject($user);
$client->setIncludeGrantedScopes(true);
$client->setAccessType(‘offline’);
$servicesClient = new Google_Service_Directory($client);
$results = $servicesClient->asps->listAsps($user);
print_r($results);
Я пытался с одной учетной записью администратора, и она работала успешно, однако все остальные учетные записи предоставляют одну из двух ошибок:
- «код»: 401,
"message": "У пользователя нет учетных данных для выполнения этой операции"
Это если я назначу рабочего администратора в качестве субъекта.
- «код»: 403,
"message": "Не авторизован для доступа к этому ресурсу / API"
Это если я назначу пользователя в качестве субъекта.
Я ожидаю, что вывод будет рабочим ответом пользователей ASPS!
Любая помощь по поводу того, почему это не работает, была бы отличной.