0

我正在尝试通过 App Script API 部署 App Script,但不断收到 404 错误 - 在脚本和 OAuth 操场中。

脚本:

function createNewFile() {
var options,payload,response,theAccessTkn,url, thisID;

thisID = ScriptApp.getScriptId();

theAccessTkn = ScriptApp.getOAuthToken();

url = "https://script.googleapis.com/v1/projects/"+thisID+"/deployments";

payload = {
"versionNumber": 8,
"manifestFileName": "appscript.json",
"description": "oauthtest"
}

options = {
"method" : "POST",
"muteHttpExceptions": true,
"headers": {
   'Authorization': 'Bearer ' +  theAccessTkn
 },
'contentType': 'application/json',
"payload": JSON.stringify(payload)
 };

response = UrlFetchApp.fetch(url,options);

Logger.log(response)

return response;
}

清单文件:

{
"timeZone": "Africa/Johannesburg",
"dependencies": {
},
"webapp": {
"access": "ANYONE_ANONYMOUS",
"executeAs": "USER_DEPLOYING"
},
"exceptionLogging": "STACKDRIVER",
"oauthScopes": ["https://www.googleapis.com/auth/drive", 
"https://www.googleapis.com/auth/script.external_request", 
"https://www.googleapis.com/auth/script.deployments"]
}

来自日志的错误:

[18-12-17 10:31:10:575 SAST] {
"error": {
"code": 404,
"message": "Requested entity was not found.",
"status": "NOT_FOUND"
}
}

我还需要执行一些步骤来部署吗?

4

1 回答 1

0

可能的问题和解决方案:

  • Incorrect manifestFileName:appsscript是目前唯一有效的清单名称。
  • 不正确的版本号:版本号应该是一个有效版本号,即已保存。部署将基于此版本号。要查看可用版本,请参阅文件>管理版本

代码片段:

payload = {
"versionNumber": 1,
"manifestFileName": "appsscript",
"description": "oauthtest"
}

笔记:

  • 目前,无法直接从 api 创建新的 web 应用程序部署。
  • 所有新部署projects.deployments.create默认为execution_api入口点。目前无法从 api 配置入口点。
  • 如果存在有效的 Web 应用部署,您仍然可以使用最新代码创建新版本,projects.versions.create并更新最新的 Web 应用部署以使用最新版本 ( projects.deployments.update)。在这种情况下,web-app 入口点(如果已经存在)不会更改,但默认为执行 api/null,如果部署中没有有效的入口点,则会更新。

读书:

于 2018-12-17T20:14:06.773 回答