调用google脚本时指定版本号

Specify version number when calling google script

我正在编写一个简单的 Google 脚本来更新电子表格(来自此 Google tutorial)。我将这个脚本部署为一个 API 可执行文件,可以通过 python 代码从我的计算机调用它,我在下面包含了它的要点。

api_id = 'xxxxxxxxxxxxxxxxxxxxxxxxx' # where do I specify the api version?

credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
script_service = discovery.build('script', 'v1', http=http)

request = {"function": "updateListenerStatus", # function name to call inside the Google script        
           "parameters": [data], # JSON argument passed to the function                                
           "devMode": True} # run the most recently saved instead of published version

response = script_service.scripts().run(body=request, scriptId=api_id).execute()

一切都很好,除了我想利用版本功能。通过阅读文档,我发现通过将 "devMode" 更改为 False,我可以 运行 脚本的最新发布版本而不是最近保存的版本。但是,如果我想 运行 一个较旧的发布版本怎么办?当我将一个 Google 脚本导入另一个 Google 脚本时,我很熟悉指定库版本,但是我有什么方法可以从我的 python 代码中指定版本号吗?

似乎还没有包含此功能。由于将 devMode 设置为 true 会使脚本 运行 处于最近保存的版本,为什么不编辑您想要 运行 的版本并保存它。只需编辑一些没有任何影响的评论,然后保存它。这样它将 运行 您想要的脚本版本(因为它最近保存)。

我已经实施了一个解决方法,它不是非常优雅,但可以完成工作。本质上,我将版本号作为函数名称的一部分:myFunction_v1myFunction_v2。我创建了一个单独的 Google 脚本项目,它导入我的原始脚本的每个已发布版本(MyProject_v1MyProject_v2)。然后我使用这个新的脚本项目将函数调用路由到正确的发行版本:

// Code.gs
function myFunction_v1() {
  MyProject_v1.myFunction()
}

function myFunction_v2() {
  MyProject_v2.myFunction()
}

function myFunction_v3() {
  MyProject_v3.myFunction()
}

当我从 python 客户端调用该函数时,我使用与我想要 运行.

的脚本版本关联的函数名称