Диалоговому потоку не удается разобрать ответ Webhook от Google Apps Script - PullRequest
0 голосов
/ 27 июня 2018

Я получаю следующую ошибку, когда пытаюсь передать ответ webhook из Google Apps Script в Dialogflow. Полный журнал отладки .

Webhook call failed. Error: Failed to parse webhook JSON response: 
Expect message object but got: \\\"<HTML>\\\

Вот выдержка из моего скрипта Google Apps.

function doPost(e) {
    var myData = JSON.parse(e.postData.contents);
    ...
    ...
    var replyJSON = ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
    return replyJSON;
}

Я использовал Postman, чтобы проверить, возвращает ли мой скрипт Служб Google JSON (это так).

{
    "fulfillmentText": "Hello",
    "fulfillmentMessages": [{
        "text": {
            "text": [
                "Hello"
            ]
        }
    }],
}

Я следовал документации Dialogflow v2 API , чтобы правильно отформатировать ответ JSON.

Я не могу понять, что не так. Я понятия не имею, как он может получать HTML-файл вместо JSON. Это не должно быть так сложно, чтобы создать пользовательский ответ webhook, но документация Dialogflow это ужасно .

Любая помощь будет оценена.

Edit: Веб-приложение Google опубликовано и может использоваться анонимно.

Редактировать редактировать: Больше журналов от Stackdriver.

1 Ответ

0 голосов
/ 27 июня 2018

Я не думаю, что это проблема перенаправления. Возможно, ваш JSON искажен после того, как вы его обработали (строки, которые вы пропустили). Попробуйте проверить doPost как эхо, чтобы увидеть, работает ли он:

function doPost(e) {
      var content = JSON.parse(e.postData.contents);

      return ContentService
              .createTextOutput()
              .setMimeType(ContentService.MimeType.JSON)
              .setContent(JSON.stringify(content));
}
...