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

如何通过SheetID批量撤销第三方应用与服务的访问权限?

解决方法:通过Sheet ID批量撤销第三方应用访问权限

你当前的代码核心问题是用错了API:ScriptApp.invalidateAuth()是撤销当前脚本自身的所有授权,和你要撤销第三方应用对特定Sheet的权限完全无关,而且代码里根本没把sheetId关联到实际的权限操作上。

要实现批量撤销第三方应用对指定Sheet的访问权限,需要通过Drive API操作文件的权限列表,筛选并删除第三方应用的权限条目,具体代码如下:

function revokeThirdPartyAccessForSheets() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const revokeSheet = ss.getSheetByName('REVOKE');
  // 提取Sheet ID列表并过滤空值
  const sheetIds = revokeSheet.getRange('B2:B' + revokeSheet.getLastRow())
    .getValues()
    .flat()
    .filter(id => id);

  sheetIds.forEach(sheetId => {
    try {
      // 获取目标Sheet对应的Drive文件
      const targetFile = DriveApp.getFileById(sheetId);
      // 获取文件的所有权限条目
      const allPermissions = targetFile.getPermissions();

      // 筛选第三方应用权限(OAuth客户端或服务账号类型)
      const thirdPartyPerms = allPermissions.filter(perm => {
        const permType = perm.getPermissionType();
        return permType === DriveApp.PermissionType.OAUTH_CLIENT || 
               permType === DriveApp.PermissionType.SERVICE_ACCOUNT;
      });

      if (thirdPartyPerms.length === 0) {
        Logger.log(`Sheet ID ${sheetId} 无第三方应用权限记录`);
        return;
      }

      // 批量删除第三方应用权限
      thirdPartyPerms.forEach(perm => {
        targetFile.removePermission(perm.getId());
        const permName = perm.getEmail() || perm.getName();
        Logger.log(`已撤销Sheet ID ${sheetId} 的第三方应用权限:${permName}`);
      });

    } catch (error) {
      Logger.log(`处理Sheet ID ${sheetId} 失败:${error.message}`);
    }
  });
}

关键说明:

  • 先通过DriveApp.getFileById(sheetId)获取目标Sheet对应的Drive文件(Spreadsheet本质是Drive中的文件)。
  • 用getPermissions()拉取文件的所有权限条目,筛选出OAUTH_CLIENT或SERVICE_ACCOUNT类型的权限——这些就是第三方应用的授权记录。
  • 调用removePermission(perm.getId())删除对应的权限条目。
  • 如果需要针对特定第三方应用撤销,可以在筛选时增加perm.getEmail()或perm.getName()的判断条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:15:19