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

如何在Google Sheets中隐藏Google App Script函数及token?

解决Google Sheets中隐藏token获取函数并保护token的方案

核心思路

要实现两个目标:一是让获取token的函数不在Google Sheets的自定义函数列表中显示,二是确保token不会被通过单元格调用或前端页面泄露。以下是具体可行的方案:

1. 将token获取函数设为私有函数

在Google Apps Script中,函数名以下划线_开头的函数会被识别为私有函数,不会出现在Google Sheets的自定义函数列表中,同时单元格也无法直接调用该函数。

修改你的token获取函数:

// 私有函数,不会暴露给Google Sheets
function _getTokenFromMacro() {
  // 原有的token获取逻辑
  const token = "你的token获取逻辑";
  return token;
}

2. 通过中转函数处理前端请求(避免token泄露)

由于google.script.run无法直接调用私有函数,你需要创建一个公开的中转函数,在服务器端完成token的使用逻辑,绝不直接返回token给前端。这样token全程在服务器端运行,不会泄露给客户端或Sheet单元格。

示例中转函数:

// 供前端调用的公开函数,仅返回业务结果
function getProcessedData() {
  // 调用私有函数获取token
  const token = _getTokenFromMacro();
  
  // 在这里完成需要token的操作(比如调用API)
  const apiResponse = UrlFetchApp.fetch("https://目标API地址", {
    headers: {
      "Authorization": `Bearer ${token}`
    }
  });
  
  // 返回处理后的业务数据,而非token
  return JSON.parse(apiResponse.getContentText());
}

然后在javascript.html中调用这个中转函数:

google.script.run
  .withSuccessHandler(function(result) {
    // 处理返回的业务数据
    console.log(result);
  })
  .getProcessedData();

额外的安全强化措施

  • 清理旧的单元格调用:如果之前有用户在单元格中调用过原getTokenFromMacro函数,改成私有后这些单元格会报错,建议提醒相关用户删除这些调用,避免不必要的问题。
  • 使用Properties Service存储敏感数据:如果token是固定值,可将其存储在PropertiesService.getScriptProperties()中,而非硬编码在函数里,进一步降低泄露风险:
function _getTokenFromMacro() {
  // 从脚本属性中获取token
  return PropertiesService.getScriptProperties().getProperty("SECRET_TOKEN");
}

设置脚本属性的方式:在App Script编辑器中,依次点击「项目设置」→「脚本属性」→「添加属性」,输入键名SECRET_TOKEN和对应token值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:45:03