- Вы хотите изменить версию установленной библиотеки с помощью API скриптов Google Apps.
- Вы уже смогли получить и поместить значения для проекта скрипта Google Apps с помощью API скриптов Google Apps.
- Вы хотите добиться этого с помощью Google Apps Script.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Точки модификации:
- Чтобы изменить версию библиотеки, измените
json.files[1].source
, проанализированный как JSON object. - В этом случае
json.files[1].source
требуется указывать в качестве строкового типа. Поэтому после обновления версии до объекта, обработанного json.files[1].source
, установите для типа строки json.files[1].source
. - Если вы хотите использовать библиотеку путем изменения версии, установите
developmentMode
как false
. Таким образом, вы можете использовать каждую версию. - Когда вы помещаете измененную полезную нагрузку, пожалуйста, измените
'payload' : json
на 'payload' : JSON.stringify(json)
.
Когда вышеуказанные пункты отражены в вашем сценарии, это делается следующим образом.
Модифицированный скрипт:
function getScriptData() {
var libraryId = "###"; // Please set the library ID you want to change the version.
var updateVersion = "2"; // Please set the changed version. In this case, the version is changed to "2".
var scriptID = ScriptApp.getScriptId();
var url = 'https://script.googleapis.com/v1/projects/' + scriptID + '/content';
var token = ScriptApp.getOAuthToken();
var options = {
'method' : 'get',
'headers' : {'Authorization':'Bearer '+ token},
'muteHttpExceptions' : true
};
var response = UrlFetchApp.fetch(url, options);
var json = JSON.parse(response.getContentText());
// Here, json.files[].source is modified.
json.files.forEach(function(file, i) {
if (file.name == "appsscript") {
var source = JSON.parse(file.source);
if (source.hasOwnProperty("dependencies") && source.dependencies.hasOwnProperty("libraries")){
source.dependencies.libraries = source.dependencies.libraries.map(function(e) {
if (e.libraryId == libraryId) {
e.version = updateVersion;
e.developmentMode = false;
}
return e;
});
json.files[i].source = JSON.stringify(source, null, " ");
}
}
});
// Modified json object is put to the Google Apps Script.
var options = {
'method' : 'put',
'headers' : {'Authorization':'Bearer '+ token},
'contentType' : 'application/json',
'payload' : JSON.stringify(json)
};
var response = UrlFetchApp.fetch(url, options);
Logger.log(response)
}
Примечание:
- Это простой модифицированный скрипт. Поэтому, пожалуйста, измените это для вашей реальной ситуации.
Ссылки:
Если я неправильно понял ваш вопрос, и это не то направление, которое вам нужно, я прошу прощения.