如何使用Google API服务库(Java)运行Google App脚本

时间:2018-03-19 06:54:43

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

通过关注Java Quickstart example,我可以创建一个新的Google App Script项目并检索scriptId。此外,通过引用Restful API document,脚本应该能够使用Method: scripts.run执行。但是,我不知道如何使用Java中的com.google.api.services.script.Script检索返回值。

我试过了:

Script scriptService = getScriptService();
Script.Scripts scripts = scriptService.scripts();
Script.Scripts.Run run = scripts.run(scriptId, request);

并反编译run函数:

public Script.Scripts.Run run(String var1, ExecutionRequest var2) throws IOException {
    Script.Scripts.Run var3 = new Script.Scripts.Run(var1, var2);
    Script.this.initialize(var3);
    return var3;
}

该函数不会返回我正在寻找的ExecutionResponse对象。

1 个答案:

答案 0 :(得分:1)

根据REST API文档,调用script.run不会立即返回ExecutionResponse对象,而是包含 ExecutionResponse的Operation对象:

{
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object(Status)
  },
  "response": object(ExecutionResponse)
  ,
  // End of list of possible types for union field result.
}

如果我们查看Java API Client library,我们会看到方法Script.Script.run接受脚本ID和ExecutionRequest的参数,然后返回必须为{{1的Script.Script.Run请求}} d:

  

创建方法请求" scripts.run"。此请求包含脚本服务器所需的参数。设置任何可选参数后,调用.execute()方法以调用远程操作。

引用文档引用的请求为Script.Script.Run,并且有AbstractGoogleClientRequest.execute()等方法用于其他配置,以及一些执行方法,如.setAccessToken().execute()来实际提交执行请求并返回操作。