Полное заполнение диалогового окна Webhook возвращает ноль - PullRequest
0 голосов
/ 28 апреля 2019

Я делаю веб-крючок для полного заполнения диалогового потока.Webhook - это php-файл (который я поместил в папку модулей на веб-сайте Prestashop), который получает данные в формате JSON из API-интерфейса диалогового окна и должен также возвращать JSON в тот же API.

IЯ использую API диалогового потока для создаваемого чата, вот временный адрес, если вы хотите посмотреть: https://02c96678.ngrok.io/prestashop1.6/en/

Он - код webhook.php (находится здесь: https://02c96678.ngrok.io/prestashop1.6/modules/dialoflowchat/webhook.php)


ob_start();

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');

ob_end_clean();

echo json_encode(array("fulfillmentText" => "IT S WORKING"));

Когда вы наберете "У вас есть платья?" в чате, вы получите сообщение на французском "Je n'ai pas составляющий, veuillez консультант notrefaq ", за которым следует пустое сообщение. НО обычно у вас должно быть это сообщение:" ЭТО РАБОТАЕТ ". Я проверил в истории консоли диалогового потока, и это указывает на это сообщение об ошибке:

WebhookОшибка вызова. Ошибка: не удалось проанализировать ответ JSON webhook: null.

Когда я удаляю эти строки из кода:

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');

все работает нормально.

Я нашел пост, где он былЯ решил сохранить включенные файлы в формате UTF-8 для решения этой проблемы, но это не помогло.

Я надеюсь, что мои объяснения были ясны.

Спасибо за вашу помощь

Aymeric

PS: мне нужно включить 2 файла (config.inc.php и init.php), чтобы использовать функции Prestashop в моем файле webhook.

[[EDIT]]

После исследований я использовал Postman для отправки того же POST-запроса, что и в диалоговом потоке, и понял, что при отправке на https://342b3340.ngrok.io/prestashop1.6/modules/dialogflowchat/webhook.php ответом является полная страница веб-сайта (и когда я включаю форматв JSON есть несколько пар ключ / значение данных), но когда я делаю запрос к http://127.0.0.1/prestashop1.6/modules/dialogflowchat/webhook.php,, ответ хороший (даже с двумя включенными строками в коде).

Итак, я думаю, что проблема скорее в перенаправлениях Ngrok и Http, чем в самом моем коде.

Теперь я подумываю либо найти подходящую конфигурацию ngrok, либо поместить мой код вреальный сервер.

ура

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