Добавьте внешнего пользователя в группу G Suite с помощью Google API - PullRequest
0 голосов
/ 14 апреля 2019

Проблема:

Корпоративный Google Drive пока не может открывать групповые диски для всего Интернета.

Я не хочу перемещать папку на личный диск - это удобноработа с командой на командном диске.

Как я хочу решить проблему:

  1. Форма заполнена на https://leadstartup.ru/go
  2. После заполнения этогоформа, электронная почта пользователя должна быть добавлена ​​через API в группу G Suite, чтобы получить доступ к General Drive на Google Drive.

Что сделано:

  1. Написанокласс, который по идее должен правильно сработать
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');

json

В G Suite было добавлено

scopes


В результате я получаю 401 ошибку unauthorized_client Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.

Пожалуйста, помогите мне с этим вопросом.Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...