以编程方式添加 GAS 库?

问题描述 投票:0回答:1

有没有办法以编程方式添加GAS库脚本?我正在使用脚本制作 gdoc 并粘贴一些信息,但我认为最好将该信息放在由中央库控制的侧栏中。 (我知道将其创建为插件也是可能的)。

google-apps-script
1个回答
0
投票
// 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
  })
© www.soinside.com 2019 - 2024. All rights reserved.