【问题标题】:Exception: Access denied: DriveApp例外:访问被拒绝:DriveApp
【发布时间】:2022-01-04 04:15:08
【问题描述】:

我制作了一个脚本,用于接收需要从访问给定 Google 驱动器文件夹中删除的用户的电子邮件列表。这是带有删除用户功能的 sn-p:

 function remove_user(drive_folder,user_email){

   if(drive_folder.getAccess(user_email) != "NONE"){
     Logger.log("removing user: " + user_email);
     drive_folder.revokePermissions(user_email);
   }

 }

调用 revokePermission 方法时引发异常:

例外:访问被拒绝:DriveApp

问题是,该脚本第一次确实要求我的电子邮件帐户的 DriveApp 权限,我给了它(其他 DriveApp 方法在同一脚本中工作得很好)。此外,我的电子邮件帐户有权从我定位的 google 驱动器文件夹中删除用户(我可以使用我的 google 帐户手动删除用户)。

感谢您的帮助。

【问题讨论】:

标签: google-apps-script google-drive-api


【解决方案1】:
  1. 您登录时使用的用户必须是文件的所有者才能删除其他权限。
  2. 如果这是一个工作区帐户,请确保在管理控制台中为您或您的域激活 DriveApp。

【讨论】:

    【解决方案2】:

    根据设计,您不能删除共享文件夹的所有者。如果你试图以编辑的身份去做,你的例外就会出现。如果您尝试删除自己(作为所有者),则会出现Exception: Invalid argument: file.owner

    这就是它的设计方式。一个文件夹(或与此相关的文件)总是有一个所有者,不管它是如何共享的。您可以阅读更多关于 Google Drive 中的权限如何工作的信息here

    当然,使用 AppsScript,您可以通过 DriveApp.revokePermissions() 删除文件夹的其他编辑器,就像您手动操作一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2012-09-13
      • 2021-03-06
      相关资源
      最近更新 更多