Тестирование Google Script с PostMan - PullRequest
3 голосов
/ 24 октября 2019

Я создал Google Script и опубликовал его как веб-приложение, очень похоже на то, что в этом посте есть .

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

Я ожидал, что смогу вставить URL-адрес в Почтальон, установить глагол GET и нажать Send - и увидеть то же самоерезультат вижу в браузере. Я не знаю.

Что я делаю не так?

[ОБНОВЛЕНИЕ] Ответ на комментарий от themaster

Я создал Google Apps Script с именем devices в моем Google Диске. Я добавил эту функцию:

function doDelete(e) {
  return HtmlService.createHtmlOutput('{"test":"yes"}');
}

Простой, я знаю, но должен ответить на DELETE запрос:

{
  "test": "yes"
}

Затем я нажимаю Save, а затемDeploy> Publish as web app... со следующими параметрами:

  • Версия проекта: новая
  • Запустите приложение как: me
  • У кого есть доступ: Любой, дажеанонимный

Я нажимаю Update и получаю URL-адрес, подобный следующему:

https://script.google.com/macros/s/ABcdefgHInmLDGiHmpGmXkXIxMjsh0s61sKZ9ov6OOSpkb--1quTtfM/exec

Если функция называется doGet и я вставляю URL-адресв браузере я вижу этот JSON, упомянутый выше.

Если я оставлю функцию с именем doDelete и сделаю DELETE запрос от Почтальона, я получу следующее:

Не удалось получить ответ. При подключении к https://script.google.com/macros/s/ABcdefgHInmLDGiHmpGmXkXIxMjsh0s61sKZ9ov6OOSpkb--1quTtfM/exec. произошла ошибка. Почему это могло произойти: серверу не удалось отправить ответ. Убедитесь, что сервер работает правильно. Самоподписанные сертификаты SSL блокируются. Исправьте этоотключив «Подтверждение SSL-сертификата» в меню «Настройки»> «Общий прокси-сервер неправильно настроен». Правильно настроено в Настройках> Время ожидания запроса прокси: Изменить время ожидания запроса в Настройках> Общие

Если я изменю функцию на doGet, перепубликую и вызову ее с запросом GET от Почтальона, получаютот же результат.

[РЕДАКТИРОВАТЬ] Уточнение

Если я позвоню Почтальону, используя GET, и настрою функцию doGet для вызова веб-крючка IFTTTпаутина срабатывает. Я также могу запустить его с помощью запросов doPost и POST в Postman.

Однако, если я использую doDelete с запросом DELETE в Postman, веб-крючок IFTTT не будет вызван.

Независимо от глагола, используемого в Почтальоне, я не получаю ответ - только сообщение, указанное выше.

[ПРАВИТЬ] Ответ на @ sourabh-choraria вопрос

Мой код в настоящее время просто так:

function doGet(e) {
  return HtmlService.createHtmlOutput('{"valid":"no"}');
}

Публикуется с процессом, описанным выше, я получаю это при звонке с почтальоном:

Could not get any response

Я делаю этот запрос как GET без заголовков.

1 Ответ

7 голосов
/ 25 октября 2019

В настоящее время веб-приложения скрипта Google Apps поддерживают только следующие методы HTTP согласно их требованиям для веб-приложений -

  • GET через doGet()
  • POST через doPost()

Хотя в справочном документе явно не указано, что PUT, DELETE, UPDATE и т. Д. Не поддерживаются, нет никакого способавыполнить эти методы HTTP через веб-приложения в скрипте приложений.

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