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

Google Apps Script库集成后google.script.run调用后端函数提示不是函数

Google Apps Script库集成时google.script.run调用失败的问题修复

问题根源

当通过宿主脚本打开库的侧边栏时,google.script.run的执行上下文是宿主脚本,而非你开发的库脚本。前端代码里直接调用myBackendFunctionName会报错,因为这个函数只存在于库中,宿主脚本没有定义对应的函数,所以找不到。

修复方案

方案一:宿主脚本封装转发函数(推荐)

在宿主脚本的Script.gs中添加一个转发函数,将前端的调用转交给库的对应函数:

// 宿主脚本 > Script.gs
function myBackendFunctionName(someArgument) {
  // 转发调用到库的函数
  return myLibrary.myBackendFunctionName(someArgument);
}

这样前端的google.script.run.myBackendFunctionName()就能找到宿主脚本中的这个函数,再由它调用库的目标函数,完全复用库的逻辑实现。

方案二:修改库的前端代码(需注意权限)

如果不想在宿主脚本中添加转发函数,可以修改库的sidebar.html,明确通过库的引用路径调用函数,但前提是库的函数设置为公开可访问(库脚本中函数不能是私有):

<!-- 库 > sidebar.html 修改后代码 -->
<script>
    google.script.run
        .withSuccessHandler((backendResponse) => {
            console.log('Successfully got backend response!');
        })
        .withFailureHandler((error) => {
            console.log('Error getting backend response!');
        })
        // 明确指定库的标识 + 函数名
        .myLibrary.myBackendFunctionName(someArgument);
</script>

不过这种方法可能受库的权限设置、宿主脚本引用库的方式影响,稳定性不如方案一。

额外注意事项

  • 确保库中的myBackendFunctionName函数是公开函数(库脚本中函数未加private修饰,且在脚本编辑器中权限设置为允许外部调用)
  • 宿主脚本引用库时,确认选择了正确的库版本,且权限设置允许宿主脚本调用库的函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:00:00