Как выполнить скрипт Google App из внешнего скрипта - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь создать веб-приложение, которое будет создавать Документ Google из шаблона и заполнять его данными, предоставленными пользователем.Используя пример быстрого запуска Google в документации, я могу успешно авторизоваться и получить доступ к файловой системе Google Диска.Теперь мне нужно программно открыть шаблон Google Doc (или даже создать его с нуля) и добавить данные.

Это довольно легко сделать с помощью службы документов App Script (класс DocumentApp).Поэтому я могу сделать что-то вроде:

function createDoc(contentArray) {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = contentArray; // data submitted with HTML form passed as arg
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

в отдельном скрипте приложения и успешно создать новый Документ Google на Google Диске.Я не могу понять, как выполнить этот скрипт приложения из моего внешнего веб-приложения.Есть ли способ сделать это или мне нужно найти другой способ создания Google Документов (и добавления контента), используя только API Drive?

РЕДАКТИРОВАТЬ:

вот запрос GET из моего веб-приложения:

var gurl = "https://script.google.com/macros/s/AKfycbwMHKzfZr1X06zP2iEB4E8Vh-U1vGahaLjXZA1tk49tBNf0xk4/exec";
$.get(
    gurl,
    { name: "john", time: "2pm",},
    function(data) {
      console.log(data);
    },
    "jsonp"
)

, а вот мой doGet():

function doGet(e) {

  var result = "";
  var name = e.parameter.name;

  Logger.log(name);

  try {
    result = "Hello " + name;
  } catch (f) {
    result = "Error: " + f.toString();
  }

  result = JSON.stringify({
    "result": result
  });  

  var doc = DocumentApp.create('ballz3');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
  Logger.log('DOc Name: ' + doc.getName());

  return ContentService
  .createTextOutput(e.parameter.callback + "(" + result + ")")
  .setMimeType(ContentService.MimeType.JAVASCRIPT);   

}

1 Ответ

0 голосов
/ 13 июня 2019

Чтобы запустить скрипт из внешнего местоположения, такого как ваше веб-приложение, вам нужно выполнить некоторые настройки и использовать Script API. В документации, представленной ниже, есть отличный пример того, как запускать ваши скрипты извне.

Кроме того, вы можете напрямую использовать API-интерфейсы со службами, такими как OAuth, чтобы напрямую использовать API-интерфейсы таким образом, чтобы сэкономить время и сделать код более простым. Использование OAuth может предоставить вам простые запросы API. Чтобы использовать это:

  • Перейдите по ссылке, приведенной ниже, выберите желаемую область действия (в этом примере диск).
  • Обмен токена авторизации на токены обновления / доступа.
  • Продолжить настройку запроса. Здесь вы можете установить все параметры для запроса и даже выбрать из существующих операций, доступных для области действия (кнопка «Список возможных операций»).
  • Полученный запрос будет выглядеть следующим образом:

    GET / drive / v3 / files HTTP / 1.1 Хост: www.googleapis.com Длина содержимого: 0 Авторизация: Носитель [ВАШ-ЖЕЛЕЗ]

  • Под ним вы увидите ответ сервера на запрос.

Документация URL: https://developers.google.com/apps-script/api/how-tos/execute

Детская площадка OAuth: https://developers.google.com/oauthplayground/

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