首页 > 解决方案 > 无法使用 Google Drive API 创建管理器权限

问题描述

我正在使用 Google Drive API 创建一个文件夹,创建后我需要向用户授予组织者权限。这就是我创建文件夹的方式:

$listingMainFolder = $serviceDrive->files->create(
    new Google_Service_Drive_DriveFile([
        'name' => [$request->name],
        'mimeType' => 'application/vnd.google-apps.folder',
        'parents' => [$parentFolder]
    ])
);

然后我创建权限:

$permission = $this->insertPermission($serviceDrive, $listingMainFolder->id, $listing->owner->email, 'user', 'organizer');

这是 insertPermission() 函数:

function insertPermission($service, $fileId, $value, $type, $role)
{
    $newPermission = new Google_Service_Drive_Permission();
    $newPermission->setEmailAddress($value);
    $newPermission->setType($type);
    $newPermission->setRole($role);
    $permission = $service->permissions->create($fileId, $newPermission);
    return $permission;
}

这给了我一个错误:“组织者角色仅对共享驱动器有效”,但如果我将“作者”而不是“组织者”作为角色传递,那么一切正常。创建文件夹时我错过了什么吗?

PS我也尝试过像这样传递 transferOwnership 属性:

$permission = $service->permissions->create($fileId, $newPermission, array('fields' => 'id', 'transferOwnership' => 'true'));

标签: google-apigoogle-drive-api

解决方案


推荐阅读