1

根据Google Drive SDK Update 共享权限https://developers.google.com/drive/v2/reference/permissions我想将整个文件夹内容更改为可供查看(该文件夹仅包含图像,我显示它们在我的页面上<img alt='' src='https://drive.google.com/uc?export=view&id="fileID"'/>

所以,我正在尝试使用该代码

PermissionList permissions = Google_DriveService.Permissions.List(fileId).Fetch();
var filePermissions =  permissions.Items;


Permission permission = Google_DriveService.Permissions.Get(fileId, filePermissions[0].Id).Fetch();
permission.Role = "reader";
permission.Value = "me";
permission.Type =  "anyone";
permission.WithLink = true;

var updated = Google_DriveService.Permissions.Update(permission, fileId, filePermissions[0].Id).Fetch();

但我收到错误消息

Google.Apis.Requests.RequestError Invalid permission type specified [400] Errors [ Message[Invalid permission type specified] Location[ - ] Reason[invalid] Domain[global] ] 

我究竟做错了什么 ?

4

3 回答 3

3

托尼的回答是正确的,如果其他人想要测试这个,这里是他的指令的一个插件。请注意,由于时间限制,我没有为此编写代码,但我使用 Google Drive web api 页面上提供的 Google API 对其进行了测试。我通过执行以下操作对此进行了测试:

  1. 转到以下链接并列出驱动器中的所有文件。https://developers.google.com/drive/v2/reference/files/list

  2. 选择一个您要共享以进行只读访问的文件,然后按照下面的屏幕截图复制“id”:

驱动器 ID

转到此处的插入权限页面 - Tony 是正确的,您没有删除现有权限,而是添加到该权限:https ://developers.google.com/drive/v2/reference/permissions/insert

  1. 在 API 资源管理器中,将“role”键入为“reader”,将“type”键入为“anyone”。

  2. 转到您的云端硬盘:https ://drive.google.com/drive/#my-drive ,您将看到该文件现在已共享 - 如果您将鼠标悬停在下面屏幕截图中的绿色链接图标上,它会告诉您它现在是共享的。

共享云端硬盘

您还可以复制文档的链接并将其粘贴到 Chrome 中的隐身模式中,以测试您是否可以在隐身模式下访问该文档的只读版本并且它应该可以工作。

额外的:

代码应该不会太难,这里是:

 Permission newPermission = new Permission();

    newPermission.setType("anyone");
    newPermission.setRole("reader");
    try {
      return service.permissions().insert(fileId, newPermission).execute();
    } catch (IOException e) {
      System.out.println("An error occurred: " + e);
    }
于 2015-01-16T18:51:18.453 回答
2

您无法通过更新请求更改权限类型、插入新权限并删除现有权限。您也不应该将me其用作与任何人权限相关的主体。任何人的权限都不希望设置值属性。

于 2013-09-20T14:04:12.097 回答
0

这是 API 的新参考:https ://developers.google.com/drive/v3/reference/permissions/create

于 2017-09-22T18:33:19.847 回答