@OpenReligion

Как в Google Script библиотеку заменить на веб-приложение?

В настоящий момент во множестве таблиц в качестве скрипта вставлен следующий код:

function append()
{
  SpreadsheetApp.getUi().alert('Всё сохранилось! Спасибо!');
  Library.called_by_button();
}


Вся исполняемая часть вынесена в подключаемую библиотеку Library.

Есть проблема. Если вносить правки в Library, то в каждом отдельном файле нужно вручную менять версию подключаемого файла на самый последний.

Насколько я понимаю, если развернуть ту же Library как веб-приложение (UrlFetchApp.fetch), то достаточно будет просто публиковать (обновлять) файл веб-приложения, и во всех файлах он автоматически станет актуальным.

Сейчас библиотека берет значения из открытой таблицы и отправляет их в другую, развернутую как веб-приложение. Код библиотеки выглядит сейчас так:

function called_by_button(data_to_be_sent){

var date = new Date();  
var ss1 = SpreadsheetApp.getActive();
var id = ss1.getRange("B1").getValue();

  var data = {
            'date': date,
            'a1': id

  var options = {
    'method' : 'post',
    'payload' : data,
    muteHttpExceptions: true
  };
  // This is probably the best way to use UrlFetchApp() and handle errors.
  
  var url = 'https://script.google.com/a/***/exec';
  
  try {
    var response = UrlFetchApp.fetch(url, options); // Post the data (make the HTTP Request)
    var responseCode = response.getResponseCode();
    if (responseCode === 200) { // 200 = SUCCESS
      Logger.log("url_fetch() response code %s ", responseCode);
      return response; 
    } else {
      Logger.log(Utilities.formatString("url_fetch() Request failed for: %s, Expected 200, got %d",url,responseCode ));
      return false; 
      // 
    }
  }// end Try
  catch (err) {
     Logger.log(Utilities.formatString("url_fetch() Request failed (underlying network error). %s, response code: %s",err, responseCode));
     return false;
  }

  }


Подскажите, пожалуйста, что следует поменять в самом коде в обоих файлах (в открытой таблице и в библиотеке), чтобы библиотека работала как веб-приложение?
  • Вопрос задан
  • 803 просмотра
Пригласить эксперта
Ответы на вопрос 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Скорее всего в коде ничего менять не нужно. Нужно постараться поменять свое представление о проблеме. Это не настольный офис, где кинул пару симлинков, и программа довольна.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы