Я пытаюсь создать веб-крючок для чат-бота, чтобы получать информацию из Google Sheets. Поскольку в Google есть скрипт Google Apps, который легко работает с листами, я подумал, что попробую запустить там свои скрипты. Мне удалось обработать запрос GET, как того требует чатбот, возвращающий строку. Но я не могу подключить запрос POST для передачи информации. Я зарегистрировал запрос и ответ, которые выглядят правильно и заставляют меня думать, что мой сценарий работает нормально, но в подключении http должно быть что-то не так. Проблемы, которые я нахожу, в том, что GAS отправляет обратно перенаправление, что может быть проблемой. Есть ли способ обойти это, просто отправив JSON строковый ответ? Кроме того, при выполнении запроса POST в чате, я получаю сообщение об ошибке:
Webhook "Данные заказа GAS" не выполнен Запрос не выполнен с кодом состояния 405
Я посмотрел Ошибка 405 и говорит, что
Ошибка 405: веб-серверу не разрешен HTTP-метод для запрошенного URL-адреса
Как узнать, где моя ошибка является? Мой другой вариант - aws лямбда, но он также не работает.
Это моя функция doPost. Все отлично работает. Он должен вернуть строку, но ContentService на самом деле отвечает перенаправлением 302 (протестировано с тестером Talend API). Мои функции журнала сохраняют информацию на листе журнала, поскольку я не могу использовать журнал сценариев.
//get order information from an order id
function doPost(e) {
startLog(['- NEW POST REQUEST - v'+ver, new Date()]);//e.postData.contents
var content=JSON.parse(e.postData.contents);
addLog(JSON.stringify(content));//log input
if(!verify(e.parameter.token)){//part of chatbot to validate url
addLog("Token Invalid");
return ContentService.createTextOutput("Token Invalid");
}
var response = processPost(content.result.resolvedQuery);//analyze data (return json object)
addLog(JSON.stringify(response));
return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.TEXT);
}