Создать Team Drive для пользователя, используя учетную запись службы - PullRequest
0 голосов
/ 26 марта 2019

Я создаю панель администратора, которая создает учетную запись пользователя G Suite с использованием Google API и PHP SDK.Я закончил с ролью в создании пользователя, но теперь мне интересно, как я могу создать Team Drive для вновь созданного пользователя?Я не вижу параметра, в который я могу добавить идентификатор вновь созданного пользователя, например, электронную почту.Я что-то упустил?

https://developers.google.com/drive/api/v3/reference/teamdrives/create

Приведенный ниже код может создать Team Drive, но он будет добавлен в учетную запись G Suite, которая создала учетную запись службы.

$service = new \Google_Service_Drive($this->client($scopes));

$metadata = new Google_Service_Drive_TeamDrive();
$metadata->setName('My New Drive');

do {
   $requestId = Uuid::uuid4()->toString();
   try {
        $resp = $service->teamdrives->create($requestId, $metadata);
   } catch (Google_Service_Exception $e) {
        $resp['statusCode'] = $e->getCode();
        $resp['errors'] = $e->getErrors();
        $resp['message'] = $e->getMessage();
   }
} while ( isset($resp['statusCode']) );

1 Ответ

0 голосов
/ 17 апреля 2019

Я решил эту проблему, прикрепив разрешение на диск сразу после создания Team Drive. Не забудьте установить для необязательного параметра supportsTeamDrives значение true

    $service = new \Google_Service_Drive($this->client($scopes));

    $postBody = new \Google_Service_Drive_Permission();
    $postBody->setKind('drive#permission');
    $postBody->setEmailAddress($email);
    $postBody->setType($type);
    $postBody->setRole($role);
    $optParams = [
        'supportsTeamDrives' => true
    ];

    try {
         $resp = $service->permissions->create($drive_id, $postBody, $optParams);
    } catch (Google_Service_Exception $e) {
         return abort($e->getCode());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...