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

Google Picker作为库调用时其他用户报Authorization is required错误

问题根因&修复步骤

1. 修复外层脚本的基础错误

你当前外层的getOAuthToken函数没有配置返回值,所以前端调用时拿到的自然是undefined,先修改外层代码:

function getOAuthToken() {
  return lib_.getOAuthToken(); // 新增return关键字返回库函数的执行结果
}

2. 显式声明外层脚本的授权作用域

Apps Script的授权是针对外层容器脚本(绑定到Sheet的脚本)生效的,不需要用户单独给库授权,只要外层脚本声明了库需要的所有权限,用户给外层授权后库就可以直接继承使用。
操作步骤:

  • 打开外层脚本,点击「项目设置」,勾选「在编辑器中显示appsscript.json清单文件」
  • 回到编辑器打开appsscript.json,替换为如下配置:
{
  "timeZone": "Asia/Shanghai",
  "dependencies": {
    "libraries": [
      {
        "userSymbol": "lib_",
        "libraryId": "你的库的Script ID",
        "version": "你的库的发布版本号"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/drive",
    "https://www.googleapis.com/auth/spreadsheets.currentonly",
    "https://www.googleapis.com/auth/script.container.ui"
  ]
}

3. 调整库的访问权限

不需要给用户开放库的编辑/查看权限,只要把库的共享权限设置为「知道链接的任何人都可以查看」即可,库代码运行时的权限完全由外层脚本的授权决定。

4. 补充配置校验

注意库中picker.html里的{DEVELOPER_KEY}需要替换为你GCP项目中生成的Google Picker API公开密钥,且该密钥需要配置允许所有Referer或者Google Sheets的域名访问。
你当前场景不需要部署Web App,也不需要接入第三方OAuth2库,走Apps Script原生授权流程即可:用户第一次点击菜单的「Select Folders」选项时,会触发外层脚本的授权弹窗,完成授权后就能正常拿到OAuthToken加载Picker。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:03