Я делаю веб-крючок для полного заполнения диалогового потока.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, либо поместить мой код вреальный сервер.
ура