Проблема:
Корпоративный Google Drive пока не может открывать групповые диски для всего Интернета.
Я не хочу перемещать папку на личный диск - это удобноработа с командой на командном диске.
Как я хочу решить проблему:
- Форма заполнена на https://leadstartup.ru/go
- После заполнения этогоформа, электронная почта пользователя должна быть добавлена через API в группу G Suite, чтобы получить доступ к General Drive на Google Drive.
Что сделано:
- Написанокласс, который по идее должен правильно сработать
use Google_Client;
use Google_Service_Directory;
use Google_Service_Directory_Member;
class GoogleClient
{
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
private function getClient()
{
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName("LeadStartup");
$client->setScopes([
Google_Service_Directory::ADMIN_DIRECTORY_GROUP,
Google_Service_Directory::ADMIN_DIRECTORY_GROUP_MEMBER,
Google_Service_Directory::ADMIN_DIRECTORY_USER
]);
$client->setSubject('a.kolomensky@leadstartup.ru');
return $client;
}
public function addEmailToPublicGroup()
{
$member = new Google_Service_Directory_Member();
$member->setEmail('m.ryazhenka@leadstartup.ru');
$member->setRole('MEMBER');
$directory = new Google_Service_Directory($this->getClient());
$directory->members->insert('friends@leadstartup.ru', $member);
}
}
Учетная запись службы зарегистрирована
Делегирование по всему домену включено.
json-файл правильный и имеет значение env
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . __DIR__ . '/private/LeadStartup-8c8edffdb357.json');
В G Suite было добавлено
В результате я получаю 401 ошибку unauthorized_client Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.
Пожалуйста, помогите мне с этим вопросом.Чего мне не хватает?