404, при попытке развернуть скрипт приложения через App Script API
Я пытаюсь развернуть сценарий приложения через API сценария приложения, но получаю сообщение об ошибке 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"
}
}
Есть ли какой-то шаг, который мне еще нужно сделать, чтобы развернуть?
1 ответ
Возможные проблемы и решение:
- Неверный manifestFileName:
appsscript
является единственным допустимым именем манифеста, в настоящее время. - Неверный номер версии: Номер версии должен быть номером действительной версии, которая уже сохранена. Развертывание будет основано на этом номере версии. Чтобы увидеть доступные версии, см. Файл> Управление версиями.
Фрагмент кода:
payload = {
"versionNumber": 1,
"manifestFileName": "appsscript",
"description": "oauthtest"
}
Заметки:
- В настоящее время нет способа создать новое развертывание веб-приложения непосредственно из API.
- Все новые развертывания
projects.deployments.create
по умолчаниюexecution_api
точка входа. В настоящее время нет способа настроить точку входа из API. - Если было допустимое развертывание веб-приложения, вы все равно сможете создать новую версию из последнего кода, используя
projects.versions.create
и обновите последнюю версию веб-приложения, чтобы использовать последнюю версию (projects.deployments.update
). В этом случае точка входа в веб-приложение, если она уже существует, не изменяется, но по умолчанию выполняется api/null, если в развертывании не было действительной точки входа, которая обновляется.