You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Drive.Permissions.create设置权限过期时间报错,求排查原因

关于Google Drive权限修改和过期时间设置的问题解答

一、修改已有用户权限不生效的原因及解决方法

  • 你推测的没错,Drive.Permissions.create() 仅用于首次添加新权限。当目标用户已拥有该文件的权限时,再次调用create方法添加更低级别的权限(比如从writer改为reader),用户会同时拥有两个权限,而Google Drive会优先应用最高权限(writer),所以看起来权限未变更。
  • 正确操作是使用权限修改方法:
    1. 先通过Drive.Permissions.list(fileId)获取该用户对应的permissionId
    2. 调用Drive.Permissions.update()或Drive.Permissions.patch()修改角色:
      // 使用update方法替换整个权限对象
      Drive.Permissions.update(
        { role: "reader", type: "user", emailAddress: destinataireEd1 },
        fileId,
        permissionId,
        { sendNotificationEmail: false }
      );
      
      // 或者用patch方法仅更新需要修改的字段(更高效)
      Drive.Permissions.patch(
        { role: "reader" },
        fileId,
        permissionId,
        { sendNotificationEmail: false }
      );
      

二、设置过期时间报错的原因

你遇到的错误:

GoogleJsonResponseException: API call to drive.permissions.create failed with error: Expiration dates cannot be set on this item

主要触发原因如下:

  • 个人Drive文件限制:Google Drive个人版的文件不支持设置权限过期时间,仅Google Workspace(企业版、教育版等)账户下的共享驱动器文件,或满足特定条件的文件支持该功能。
  • 权限角色限制:若尝试给文件所有者设置过期时间也会报错(你设置的是writer,此条大概率不适用)。

内容的提问来源于stack exchange,提问作者Nicolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:12:34