Как обновить скрипт, связанный с электронной таблицей, используя API-интерфейс AppScript? - PullRequest
0 голосов
/ 21 января 2019

Я намереваюсь обновить свой связанный скрипт (назначение) содержимым из другого скрипта (источника).Я пытаюсь следующий код.Это не дает никакой ошибки, но также не изменяет целевой сценарий.

function getScriptSourceCode() {
var srcProjectId = "id of source project"; // Source project ID
var destProjectId = "id of destination project"
var baseUrl = "https://script.googleapis.com/v1/projects";
var accessToken = ScriptApp.getOAuthToken()
var srcName = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + srcProjectId,       {
 method: "get",
 headers: {"Authorization": "Bearer " + accessToken}
 }).getContentText()).title;

 var content = UrlFetchApp.fetch(baseUrl + "/" + srcProjectId + "/content", {
 method: "get",
 headers: {"Authorization": "Bearer " + accessToken}
  }).getContentText();

var url = "https://script.googleapis.com/v1/projects/" + destProjectId   
 + "/content";

var  options = {
followRedirects: true,
"method" : "PUT",
"muteHttpExceptions": true,
"headers": {
  'Authorization': 'Bearer ' + accessToken
 },
 "contentType": "application/json",
 "payload": JSON.stringify(content)
}      
  var response = UrlFetchApp.fetch(url, options);
  }
}

Я что-то упустил?

1 Ответ

0 голосов
/ 24 января 2019

Простите за ошибочный сценарий. Я немного изменил сценарий, и теперь он работает по желанию. Однако мне кажется, что мне нужно дважды запустить скрипт, чтобы получить желаемый результат. Ниже приведен рабочий скрипт.

function UpdateScript() 
{
  var destProjectId = "Destination project ID"
  var srcProjectId = "Source Project ID"; // Source project ID
  var baseUrl = "https://script.googleapis.com/v1/projects";
  var accessToken = ScriptApp.getOAuthToken()

  var content = UrlFetchApp.fetch(baseUrl + "/" + srcProjectId + "/content", {
  method: "get",
  headers: {"Authorization": "Bearer " + accessToken}
  }).getContentText();

  // Upload a project to bound-script project.
 var response = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + destProjectId + "/content", {
  method: "put",
  contentType: 'application/json',
  headers: {"Authorization": "Bearer " + accessToken},
  payload: content
 }).getContentText());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...