Google Apps Script:无法调用库中函数的问题求助
调用已添加的Google Apps Script库函数
SystemIntegrationsPadgett.refreshRhCsv_2(psaReportId, psaDataTab ,psaReportParms);时,出现错误:TypeError: SystemIntegrationsPadgett.refreshRhCsv_2 is not a function,错误位于Utilization.gs的第49行onOpen函数中,已参照正常运行项目配置了相同格式与参数。
解决思路
检查库版本选择
确认当前项目引用的SystemIntegrationsPadgett库是否选择了包含refreshRhCsv_2函数的版本。若库开发者更新了版本但你选了旧版,或误选未发布的草稿版本,会导致找不到目标函数。验证库函数的可见性
Google Apps Script中,以下划线开头的函数(如refreshRhCsv_2)默认是私有函数,无法被外部项目调用。需确认库中的该函数是否被设置为公开:要么去掉函数名的下划线前缀,要么在库项目中通过配置确保函数可导出(新版编辑器可检查appsscript.json的权限配置,旧版编辑器需确认函数已标记为可对外暴露)。核对库标识符拼写
确认添加库时设置的标识符是否为SystemIntegrationsPadgett,检查有没有大小写错误、字母遗漏或拼写偏差。标识符必须和配置完全一致,否则无法定位到对应的库对象。排查
onOpen函数的执行限制onOpen属于简单触发函数,运行权限有限,且无法调用需要授权的库函数。如果refreshRhCsv_2涉及访问外部API、修改表格数据等需要授权的操作,直接在onOpen中调用会触发权限异常,甚至导致函数无法被识别。可先将调用移到手动触发的函数中测试,或改用需手动授权的可安装onOpen触发器。重新添加库并刷新项目
项目缓存可能导致库引用异常,尝试删除当前库引用后重新添加,确保版本、标识符、权限配置正确,再刷新脚本编辑器后测试调用。确认库项目的发布状态
若库是你自己开发的项目,需确认已发布为可共享版本,而非仅保存为草稿。未发布的草稿版本无法被其他项目正常引用。
内容的提问来源于stack exchange,提问作者Dee Brown

