Ich habe die Richtungen hier gefolgt https://developers.google.com/api-client-library/php/auth/service-accountsGooglephpapi Verwaltung von Benutzern mit Dienstkonto
Ich habe die Bereiche für die Client-ID meines Dienstkonto in der Admin-Konsole von
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/admin.directory.customer
https://www.googleapis.com/auth/admin.directory.domain
hinzugefügt Hier finden Sie der Code I
putenv('GOOGLE_APPLICATION_CREDENTIALS=JSONFILELOCATION');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName("Directory");
$client->setScopes(array(
Google_Service_Directory::ADMIN_DIRECTORY_CUSTOMER,
Google_Service_Directory::ADMIN_DIRECTORY_USER
));
$client->setSubject("[email protected]");
//$client->setSubject(SUPERADMINEMAILADDRESS);
$service = new Google_Service_Directory($client);
// Print the first 10 users in the domain.
$optParams = array(
'domain'=>'MYDOMAIN',
'maxResults' => 10,
'orderBy' => 'email',
);
$results = $service->users->listUsers($optParams);
das Ergebnis ich laufen bin versucht nicht autorisierter Client
Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": "unauthorized_client",
"error_description": "Unauthorized client or scope in request."
}
' in /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Http/REST.php:118
Stack trace:
#0 /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#1 [internal function]: Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#2 /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Task/Runner.php(181): call_user_func_array(Array, Array)
#3 /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Http/REST.php(58): Google_Task_Runner->run()
#4 /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Client.php(781): Google_Http_REST::execute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), in /var/web/composer/googlephpapi/vendor/google/apiclient/src/Google/Http/REST.php on line 118
Ich versuche, die E-Mail-Adresse der Dienstkonten zu verwenden. Aber ich bekomme den Erlaubnisfehler. Wenn ich eine Super Admins E-Mail-Adresse verwende, bekomme ich gute Ergebnisse. Gibt es eine Einstellung, die ich vermisse, um das Dienstkonto verwenden zu können? Ich dachte, die Delegierung der Domäne würde mir erlauben, das Dienstkonto zu verwenden, um vollen Zugang zu haben, ohne einen wirklichen Benutzer zu verwenden.
Da es sich bei dem Dienstkonto nicht um einen Superadministrator handelt, erhalten Sie einen nicht autorisierten "Client". Sie können ein Dienstkonto nur verwenden, um ** einen Benutzer als Benutzer zu imitieren. Daher sollte das Thema immer der Super Admin des Accounts sein. – Morfinismo