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

GAS中UrlFetchApp如何访问受Google Domain SSO保护的站点

解决方法

核心逻辑

你的站点现在前置了Google账号登录校验,GAS脚本运行时本身就是用你的Google账号授权的,你只需要在请求头中携带当前账号的OAuth2鉴权令牌,即可通过Google端的登录校验,之后再走你原有应用的账号密码鉴权逻辑即可。

操作步骤

  • 第一步:配置GAS项目的OAuth授权作用域
    首先打开GAS编辑器,点击左侧「项目设置」,勾选「在编辑器中显示appsscript.json清单文件」,回到编辑器页面打开appsscript.json,修改为如下配置(时区可根据你的实际情况调整):
{
  "timeZone": "Asia/Shanghai",
  "dependencies": {},
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/userinfo.email",
    "openid"
  ],
  "runtimeVersion": "V8"
}
  • 第二步:修改请求代码,添加鉴权头
    在原有请求的headers中加入Authorization字段,携带当前账号的OAuth令牌,修改后的代码如下:
function return_something() {
    var url = 'my_url';
    var myPayload = {
        "method": "login",
        "params": {
            "user": "my_username",
            "password": "my_password"
        },
        "id": 1,
        "auth": null
    };
    var headers = {
        "Accept": "application/json",
        // 新增Google鉴权头
        "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    };
    var params = {
        'method': 'POST',
        'muteHttpExceptions': true,
        'headers': headers,
        'contentType': 'application/json',
        'payload': JSON.stringify(myPayload)
    };
    var res = UrlFetchApp.fetch(url, params);
    var myObj = JSON.parse(res.getContentText());
    Logger.log(myObj)
}

注意事项

  • 如果你的站点是通过Google Cloud身份感知代理(IAP)保护的,需要额外生成指定IAP客户端ID作为受众的令牌,可通过GAS的OAuth2库实现对应逻辑。
  • 修改后首次运行脚本会触发新的授权请求,完成授权后即可正常调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:48:03