有没有办法以编程方式添加GAS库脚本?我正在使用脚本制作 gdoc 并粘贴一些信息,但我认为最好将该信息放在由中央库控制的侧栏中。 (我知道将其创建为插件也是可能的)。
// This is close but not tested
// Enable Scope: "https://www.googleapis.com/auth/script.projects"
// Step1: Get the project
var job = {}
var scriptId = ScriptApp.getScriptId();
var params = { method: "GET", headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() }, muteHttpExceptions: true };
var response = UrlFetchApp.fetch("https://script.googleapis.com/v1/projects/" + scriptId + "/content", params);
job.ScriptProject = JSON.parse(response.getContentText());
// Step2: Get the Manifest file
var module_name = “appsscript”;
var libName = “MyLibrary”;
var libScriptId = “alkejroawierjwoejrwelrjewlrl”; // Id of your Library
for (var f = 0; f < job.ScriptProject.files.length; f++) {
var name = job.ScriptProject.files[f].name;
var msg = "Exp["+module_name+"] Got[" + name + "]"; Logger.log(msg)
if (name != module_name) continue;
Logger.log(" Replacing Module["+module_name+"]")
var source = job.ScriptProject.files[f].source
var manifest = JSON.parse(source)
manifest[libName] = libScriptId
job.ScriptProject.files[f].source = JSON.stringify(manifest)
break;
}
// Step 3: Put the ScriptProject
var url = 'https://script.googleapis.com/v1/projects/' + scriptId + '/content';
var response = UrlFetchApp.fetch(url, {
method: 'PUT',
contentType: 'application/json',
payload: JSON.stringify(job.ScriptProject),
headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
muteHttpExceptions: true
})