【问题标题】:Specify version number when calling google script调用google脚本时指定版本号
【发布时间】:2016-06-08 18:02:48
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    此功能似乎尚未包含在内。既然将devMode 设置为true 会使脚本以最近保存的版本运行,为什么不编辑要运行的版本并保存它。只需编辑一些没有任何影响的 cmets,然后保存它。这样它将运行您想要的脚本版本(因为它是最近保存的)。

    【讨论】:

    • 当然我可以这样做来自己运行任何所需的脚本,但我希望能够同时支持多个版本。这个工具将被许多工程师使用,我希望对脚本或客户端的更改能够向后兼容。也许没有办法用谷歌脚本做到这一点。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多