HTTP-запрос к функции в Google Scripts - PullRequest
1 голос
/ 15 апреля 2020

Поскольку у меня нет опыта работы с HTTP-запросами и Google Scripts, у меня возникают проблемы, когда я оборачиваюсь вокруг него.

Итак, моя проблема заключается в следующем:

I В настоящее время я пытаюсь получить информацию в моем скрипте lua и отправить ее в таблицу Google. Однако то, как электронная таблица Google должна сохранять информацию, будет зависеть от того, какую функцию в скрипте Google я вызываю и передаю информацию.

ТАК, мой вопрос: как мой сценарий lua (что только дает мне доступ к HTTP-запросам в настоящее время) подключиться к определенной c функции, подобной приведенной ниже?

function callName(name) {

  // Get the last Row and add the name provided
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(sheet.getLastRow() + 1,1).setValue([name]);
}

Кроме того, я думаю, что мой сценарий также неверен, но я больше беспокоюсь о том, как на самом деле сделать соединение.

1 Ответ

2 голосов
/ 15 апреля 2020

Ответ:

Вы можете опубликовать sh ваш скрипт в качестве веб-приложения и использовать параметры URL для передачи скрипту необходимой вам информации.

Дополнительная информация :

Из документации Google о веб-приложениях:

Если вы создаете пользовательский интерфейс для скрипта, вы можете опубликовать sh скрипт как веб-приложение. Например, сценарий, который позволяет пользователям планировать встречи с членами группы поддержки, лучше всего представлять в виде веб-приложения, чтобы пользователи могли получать к нему доступ непосредственно из своих браузеров.

Однако даже без создания Пользовательский интерфейс, вы можете использовать эту функцию для запуска сценариев на вашем листе, используя HTTP-запросы.

Изменение сценария:

Чтобы разрешить сценарию принимать параметры URL-адреса, сначала необходимо изменить Ваш код, так что обработка выполняется по запросу HTTP GET. Это можно сделать с помощью функции Apps Script doGet() и параметра события e:

function doGet(e) {
  callName(e.parameter.name);
}

function callName(name) {
  // Get the last Row and add the name provided
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(sheet.getLastRow() + 1,1).setValue([name]);
}

. Настройка веб-приложения:

В пользовательском интерфейсе Apps Script следуйте инструкциям Publish > Deploy as web app... пункт меню, и во вновь открывшемся модальном окне вы захотите выбрать следующие настройки:

  • Версия проекта: New
  • Запустите приложение как : Я (your-email@address.here)
  • У кого есть доступ к приложению: Любой, даже анонимный

И нажмите Deploy. Здесь вам дадут URL в новом меньшем модале в следующей форме:

https://script.google.com/a/your-domain.com/macros/s/some-script-id/exec

Выполнение запроса:

Остальное теперь тривиально - вы можете сделать HTTP-запрос к URL-адресу скрипта на предыдущем шаге, но с предоставлением параметра URL-адреса, который необходим вам, чтобы дать приложению информацию о значении, которое вы установите sh.

Например, если вы хотите чтобы установить значение на число 20, сделайте запрос на получение следующим образом:

GET https://script.google.com/a/your-domain.com/macros/s/some-script-id/exec?name=20

Обратите внимание, что ?name=20 в конце дает веб-приложению параметр name со значением 20. Функция doGet(e) считывает это из e.parameter.name и отправляет ее в вашу функцию callName(name) для обработки и выполнения.

Надеюсь, это вам пригодится!

Ссылки:

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