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

如何创建Apps Script服务账户,以活跃用户身份访问Drive、Sheet、Docs?

核心逻辑梳理

你要实现的是「用户以自身身份运行Web App,脚本能访问用户无直接权限的Drive/Docs/Sheets资源」,核心思路是用服务账号作为“权限代理”:

  • 服务账号拥有目标资源的访问权限(直接共享资源给服务账号邮箱即可);
  • 用户的Web App脚本(以active user身份运行)通过OAuth2授权,调用服务账号的API操作资源;
  • 用户全程无需直接接触资源,所有操作都通过脚本借助服务账号权限完成。
新手入门步骤

1. 创建服务账号

  • 登录Google Cloud控制台,新建项目或使用现有项目;
  • 进入「IAM与管理员」→「服务账号」,点击「创建服务账号」;
  • 填写名称、描述后完成创建,记录服务账号的邮箱(后续用来共享资源);
  • 给服务账号添加对应权限,比如「Drive文件编辑器」「Sheets编辑器」,按需选择最小权限即可。

2. 生成服务账号密钥

  • 在服务账号详情页切换到「密钥」标签,点击「添加密钥」→「创建新密钥」;
  • 选择JSON格式,下载密钥文件(务必妥善保存,脚本中需要用到)。

3. 配置Web App的OAuth2授权

  • 在Google Apps Script中,进入「资源」→「库」,搜索OAuth2库的脚本ID:1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF并启用;
  • 将下载的JSON密钥内容复制到脚本的常量中(比如const SERVICE_ACCOUNT_KEY = {...});
  • 编写OAuth2授权代码,获取服务账号的访问令牌,用于调用Drive/Docs API;
  • 发布Web App时,选择「执行权限:以访问该Web应用的用户身份运行」。

4. 实现资源访问逻辑

  • 用获取到的服务账号令牌,调用Google Drive/Docs/Sheets的REST API(比如Drive的files.get、Sheets的spreadsheets.values.get);
  • 所有资源操作都通过API完成,用户看不到原始资源链接,也无需直接权限。
关键注意事项
  • 服务账号密钥要严格保密,绝不能暴露给普通用户;
  • 遵循最小权限原则,只给服务账号分配必要的资源权限,避免过度授权;
  • 测试阶段先在小范围用户中验证,确保权限逻辑和操作流程正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:00:58