You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何认证Google Apps Script Web App的/dev URL?部署后RESTful GET遇问题

解决Google Apps Script Web App的GET请求与/dev URL认证问题

首先,先明确你提到的第二个未完整显示的链接——那应该是**/dev URL**,它是Google Apps Script Web App的开发版本入口,和/exec URL的核心区别在于:

  • /exec是生产版本,部署后代码固定,你已经设置了“以我身份执行”+“任何人可访问”,所以无需认证就能访问,这也是你用它没问题的原因;
  • /dev是开发测试版本,会直接运行脚本的最新代码(不用重新部署新版本),但默认仅限部署该Web App的开发者账号访问,所以必须通过认证才能正常调用GET请求。

接下来详细说/dev URL的认证方法,分两种场景:

1. 手动在浏览器中访问/dev URL

直接在浏览器地址栏输入/dev URL,页面会自动跳转到Google账号登录界面,使用你部署Web App时的账号登录后,就能正常访问并测试GET请求了。这是最简单的手动测试方式。

2. 通过代码/脚本发送GET请求到/dev URL

如果是用程序(比如Python、JavaScript等)调用/dev的RESTful GET请求,需要携带OAuth 2.0令牌进行认证,具体步骤如下:

  • 获取OAuth令牌
    • 如果你是在同一个Google Apps Script项目中调用/dev URL,可以直接用ScriptApp.getOAuthToken()获取当前脚本的有效令牌;
    • 如果是外部程序调用,需要在Google Cloud Console中创建OAuth 2.0客户端凭据,获取令牌(注意要添加https://www.googleapis.com/auth/script.webapp.deploy等相关权限)。
  • 携带令牌发送请求
    在GET请求的请求头中添加Authorization字段,格式为:
    Authorization: Bearer YOUR_OAUTH_TOKEN
    
    比如用JavaScript的fetch API示例:
    const token = "你的OAuth令牌";
    fetch("你的/dev URL", {
      method: "GET",
      headers: {
        "Authorization": `Bearer ${token}`
      }
    })
    .then(response => response.text())
    .then(data => console.log(data));
    

另外,如果你在使用/dev URL时遇到GET请求失败,大概率是因为没有正确携带认证信息,按照上面的方法配置后应该就能解决问题。

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

火山引擎 最新活动