Я пытаюсь автоматически создавать адреса электронной почты из своего сценария в Gsuite для образования.
Я попробовал все, что здесь есть https://developers.google.com/admin-sdk/directory/v1/reference/users/insert?authuser=4#try-it
Если я попробую его в Интернете по ссылке вышеэто создается.но когда я пытаюсь использовать свой собственный код, он не
<?php
$post_fields = json_encode(array(
'name' =>array('familyName'=>'Dan', 'givenName'=>'Foster'),
'password' => '1234567890',
'primaryEmail' => 'dan.foster@domain.com',
'agreedToTerms' => false,
'isMailboxSetup' => false
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.googleapis.com/admin/directory/v1/users?key=[ASCCESS_key]",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $post_fields,
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Authorization: Bearer [AUTHENTICATION TOKEN]",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo $err;
} else {
echo $response;
}
?>
. После выполнения я получаю следующую ошибку
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
Как я могу обойти вход в OAuth, поскольку моя учетная запись является администратороми этот код выполняется из бэкэнда.
*** Обновление
Я наконец-то начал работать;
putenv('GOOGLE_APPLICATION_CREDENTIALS='.dirname(__FILE__).'/google/credentials.json');
$client = new Google_Client();
$client->setSubject($this->adminEmail);
$client->setScopes(Google_Service_Directory::ADMIN_DIRECTORY_USER);
$client->setAccessType('offline');
$client->useApplicationDefaultCredentials();
return $client;