Рубрики
Без рубрики

Удаление функции облака при отправке Google Form

. Помечено облачными цветами, GoogleForms, Python, JavaScript.

Google Forms отличный инструмент – легко создать, простой в использовании и т. Д. Я был недавно в встрече, разговаривая с пользователями о платформе Google Cloud, и кто-то сказал, что хотелось, что они могут подключить форму Google до функции облака Google.

Мы думали на секунду, я думал: «Это должно быть возможно». Хотя обычно нет много прямой совместимости между G Suite и Google Cloud, я знал, что вы можете написать триггер сценария приложений для большинства документов Google, что позволит вам сделать HTTP-запросы, и что облачные функции могут принимать произвольные HTTP-запросы в качестве событий Так что нет никаких причин это не должно работать.

И на самом деле, это полностью работает!

Написание функции вашего облака

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

Функция будет выглядеть что-то подобное:

def form_trigger(request):
    payload = request.get_json(silent=True)
    print(f"Payload was: {payload}")
    return "OK"

Это получит JSON из Пост Запрос, распечатайте его в наши журналы и просто верните «ОК». Очевидно, что вы можете сделать, то все, что вы хотите с полезной нагрузкой.

Развертывание этого функции с Функции GCloud Развертывают form_trigger --trigger-http --runtime python37 и перейти к следующему шагу.

Создание вашей Google Form

Форма Google, которую вы создаете, просто будет похоже на любую другую форму: вы можете иметь многоупомянутые вопросы, вопросы с несколькими вариантами выбора, вопросы свободных форм и т. Д.

Создание сценария для вашей формы

Вот где мы можем начать соединять точки. Во-первых, буквально выберите три точки в меню, когда вы редактируете свою форму:

Из этого меню выберите «Редактор сценария» Чтобы попасть в редактор скрипта приложений для этой формы. Это должно дать вам файл с именем Code.gs с пустой функцией, как так:

function myFunction() {

}

Мы собираемся обновить это, чтобы быть что-то вроде следующего:

// Replace with the URL to your deployed Cloud Function
var url = ""

// This function will be called when the form is submitted
function onSubmit(event) {

  // The event is a FormResponse object:
  // https://developers.google.com/apps-script/reference/forms/form-response
  var formResponse = event.response;

  // Gets all ItemResponses contained in the form response
  // https://developers.google.com/apps-script/reference/forms/form-response#getItemResponses()
  var itemResponses = formResponse.getItemResponses();

  // Gets the actual response strings from the array of ItemResponses
  var responses = itemResponses.map(function getResponse(e) { return e.getResponse(); });

  // Post the payload as JSON to our Cloud Function  
  UrlFetchApp.fetch(
    url,
    {
      "method": "post",
      "payload": JSON.stringify({
        "responses": responses
      })
    };
  );
}

Обязательно обновите URL Переменная с полным URL к вашим развернутым функциям облака.

Добавление триггера

Теперь, в редакторе скрипта, нажмите на “Редактировать” > «Триггеры текущего проекта» Отказ Это предложит вам дать вашему проекту имя, а затем ответить на HUB Suite Developer, и покажу вам все триггеры для вашего проекта (там не должно быть).

В правом нижнем углу выберите «+ добавить триггер», чтобы добавить новый триггер:

Диалог должен по умолчанию для OnsUbmit Функция, которую вы объявили для своей формы, в противном случае выберите ее.

Вы также должны быть уверены, что измените поле «Выбрать тип события» из «на открытии» на «по форме».

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

Наконец, сохраните свой триггер, и он должен появиться в списке триггеров.

Вывод

На данный момент ваша форма полностью подключена к облачным функциям! Вы можете представить некоторые тестовые ответы, и вы должны увидеть ответы, появляющиеся в журналах для вашей функции.

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

Оригинал: “https://dev.to/googlecloud/hitting-a-cloud-function-when-you-submit-a-google-form-3hkn”