调用google脚本时指定版本号

时间:2016-06-08 18:02:49

标签: google-apps-script google-api-python-client

我正在编写一个简单的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代码中指定版本号?

2 个答案:

答案 0 :(得分:1)

此功能似乎尚未包含在内。由于将devMode设置为true会使脚本在最近保存的版本中运行,因此您不能编辑要运行的版本并保存它。只需编辑一些没有任何影响的评论,然后保存它。这样就可以运行你想要的脚本版本(因为它最近被保存了)。

答案 1 :(得分:1)

我有一个我已经实施的解决方法,它不是超级优雅但它完成了工作。基本上,我将版本号作为函数名称的一部分包括在内: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客户端调用该函数时,我使用与我想要运行的脚本版本相关联的函数名称。