【问题标题】:Create Team Drive for a user using a service account使用服务帐号为用户创建团队云端硬盘
【发布时间】:2019-03-26 13:01:02
【问题描述】:

我正在创建一个管理面板,该面板使用带有 PHP SDK 的 Google API 创建 G Suite 用户帐户。我已经完成了创建用户的部分,但现在我想知道如何为新创建的用户创建团队云端硬盘?我看不到可以添加新创建的用户 ID(如电子邮件)的参数。我错过了什么吗?

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

下面的代码可以创建团队云端硬盘,但它会被添加到创建服务帐户的 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']) );

【问题讨论】:

    标签: google-api google-drive-api google-api-php-client google-drive-shared-drive


    【解决方案1】:

    我通过在创建团队云端硬盘后立即附加云端硬盘权限来解决此问题。不要忘记将可选参数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());
        }
    

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2018-12-04
      • 2016-06-01
      相关资源
      最近更新 更多