【发布时间】:2020-02-23 04:44:17
【问题描述】:
我了解在clasp 的帮助下,我们可以以编程方式部署脚本(即使不登录 Apps 脚本编辑器);但是,我想知道是否有类似的函数允许我们直接从 Apps 脚本编辑器调用这些 API。
我发现以下资源有助于通过 HTTP GET 和 POST 请求进行部署 -
- projects.versions.create:在部署脚本之前,它需要有一个可用的非零版本
- projects.deployments.create:一旦有了新的版本号,我们就可以调用这个API来部署脚本
不幸的是,除了这个示例 sn-p 之外,我找不到任何可以帮助以类似于我们执行其他脚本服务的方式/方式来调用这些的参考,例如:SpreadsheetApp 或 ScriptApp 或 @987654327 @等
<script src="https://apis.google.com/js/api.js"></script>
<script>
/**
* Sample JavaScript code for script.projects.versions.create
* See instructions for running APIs Explorer code samples locally:
* https://developers.google.com/explorer-help/guides/code_samples#javascript
*/
function authenticate() {
return gapi.auth2.getAuthInstance()
.signIn({scope: "https://www.googleapis.com/auth/script.projects"})
.then(function() { console.log("Sign-in successful"); },
function(err) { console.error("Error signing in", err); });
}
function loadClient() {
gapi.client.setApiKey("YOUR_API_KEY");
return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/script/v1/rest")
.then(function() { console.log("GAPI client loaded for API"); },
function(err) { console.error("Error loading GAPI client for API", err); });
}
// Make sure the client is loaded and sign-in is complete before calling this method.
function execute() {
return gapi.client.script.projects.versions.create({
"resource": {}
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error", err); });
}
gapi.load("client:auth2", function() {
gapi.auth2.init({client_id: "YOUR_CLIENT_ID"});
});
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>
我了解以上内容是 JavaScript,对 Apps 脚本不是特别有用,但是...
尝试查看是否有
gapi.client.script.projects.versions.create的 Apps 脚本(浏览器编辑器)版本
【问题讨论】:
-
AFAIK,这些功能没有 Apps Script 版本;但是,在我的快速 Google 搜索中找到了这个 - developers.google.com/resources/api-libraries/documentation/…