Google api 使用服务帐户为用户创建团队驱动

Google api 使用服务帐户为用户创建团队驱动,google-api,google-drive-api,google-api-php-client,google-drive-shared-drive,Google Api,Google Drive Api,Google Api Php Client,Google Drive Shared Drive,我正在创建一个管理面板,它使用带有PHP SDK的Google API创建一个G套件用户帐户。我已经完成了创建用户的部分,但现在我想知道如何为新创建的用户创建团队驱动?我看不到可以添加新创建的用户id(如电子邮件)的参数。我错过什么了吗 下面的代码可以创建团队驱动,但它将添加到创建服务帐户的G套件帐户中 $service=new\Google\u service\u驱动器($this->client($scopes)); $metadata=新的Google_服务_驱动器_TeamDrive(

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

下面的代码可以创建团队驱动,但它将添加到创建服务帐户的G套件帐户中

$service=new\Google\u service\u驱动器($this->client($scopes));
$metadata=新的Google_服务_驱动器_TeamDrive();
$metadata->setName(“我的新驱动器”);
做{
$requestId=Uuid::uuid4()->toString();
试一试{
$resp=$service->teamdrives->create($requestId,$metadata);
}捕获(谷歌服务例外$e){
$resp['statusCode']=$e->getCode();
$resp['errors']=$e->getErrors();
$resp['message']=$e->getMessage();
}
}而(isset($resp['statusCode']);

我通过在创建团队驱动后立即附加驱动权限解决了这个问题。不要忘记将可选参数SupportSteamDrive设置为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());
    }