Запуск формы Google в качестве веб-приложения с использованием скрипта Google App

Как запустить форму Google в качестве веб-приложения с помощью Google App Script? У меня есть этот фрагмент тестового кода, но я получаю сообщение «Сценарий завершен, но ничего не вернул».

function doGet() 
{
  // Create and open a form.
  var form = FormApp.create('Form');

  var item = form.addCheckboxItem();
  item.setTitle('What condiments would you like on your hot dog?')
     .setChoices([
           item.createChoice('Ketchup'),
           item.createChoice('Mustard'),
           item.createChoice('Relish')
     ])

  return form; 
}

person Nina    schedule 06.03.2015    source источник
comment
Ваш код работает очень хорошо на моем конце. Я думаю, вам нужно создать новую версию вашего проекта для сценария как веб-приложения, поскольку обновление предыдущей версии не обновляло его настройки общего доступа. См.: docs.google.com/forms/d/.   -  person Dayton Wang    schedule 07.03.2015


Ответы (2)


Вы можете

создавать, получать доступ и изменять Google Forms

с помощью Службы форм.

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

https://docs.google.com/forms/d/FormID/viewform

URL-адрес скрипта приложений выглядит следующим образом:

https://script.google.com/macros/s/

Если вы инициируете и запускаете этот сценарий из какого-либо типа HTML, а затем возвращаете URL-адрес формы в приложение HTML, вы можете создать форму с кодом, а затем запустить ее. Приложение HTML должно иметь возможность запускать новую вкладку (или окно) браузера. Вы не можете запустить новую форму из кода на стороне сервера gs. doGet() не будет работать для запуска новой формы.

person Alan Wells    schedule 06.03.2015
comment
Можете ли вы показать мне пример кода того, как файл gs и файл html будут работать вместе? - person Nina; 08.03.2015
comment
Единственный способ, с помощью которого HTML может вызвать серверный скрипт .gs, — это gooogle.script.run. Начните здесь: Документация Google — Google Script Run Когда ваш скрипт, создающий форму, готов, он должен получить опубликованный URL-адрес формы и вернуть его. Возвращенное значение URL-адреса формы будет обработано функцией withSuccessHandler. Эта функция должна что-то делать, например поместить URL-адрес в тег ссылки или запустить метод window.open(). - person Alan Wells; 08.03.2015

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

Если вы хотите отобразить что-то в своем браузере, вам нужно использовать службу HTML.

https://developers.google.com/apps-script/guides/html/< /а>

function doGet() 
{
  // Create and open a form.
  var form = FormApp.create('Form');

  var item = form.addCheckboxItem();
  item.setTitle('What condiments would you like on your hot dog?')
     .setChoices([
       item.createChoice('Ketchup'),
       item.createChoice('Mustard'),
       item.createChoice('Relish')
 ])

 return HtmlService.createHtmlOutput("Success you created a new form!"); 
}

Другой способ запустить форму в качестве веб-приложения — использовать службу HTML, и вы можете создать свою собственную форму. Вы будете иметь представление, как это будет сделано по этой ссылке. https://developers.google.com/apps-script/guides/html/< /а>

А вот ссылка на информацию о веб-приложениях https://developers.google.com/apps-script/guides/web

person ldoucette    schedule 16.05.2018
comment
Добро пожаловать в Stack Overflow! Хотя теоретически это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки. . - person Toby Speight; 16.05.2018