Dialogflow满额Webhook返回null

时间:2019-04-28 08:35:28

标签: php prestashop dialogflow-fulfillment

我正在制作一个用于完成对话流的webhook。 Webhook是一个php文件(我将其放置在Prestashop网站的模块文件夹中),该文件从dialogflow API接收JSON格式的数据,并且还应该将JSON返回相同的API。

我正在使用我正在制作的聊天机器人的dialogflow 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"));

当您在聊天机器人中键入“您有衣服吗?” 时,您会收到一条法文“ Veillez顾问常见问题解答”,您会收到一条消息。后跟一个空消息。但是通常您应该收到以下消息:“正在工作”。我检查了dialogflow控制台的历史记录,它指示此错误消息:

  

Webhook呼叫失败。错误:无法解析webhook JSON响应:空。

当我从代码中删除这些行时:

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

一切正常。

我找到了一个帖子,指出要以UTF-8格式保存包含的文件,以解决此问题,但没有帮助。

我希望我的解释清楚。

感谢您的帮助

Aymeric

P.S:我需要包括2个文件(config.inc.php和init.php),以便在我的webhook文件中使用Prestashop功能。

[[编辑]]

经过调查,我使用Postman发送与dialogflow相同的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配置,要么将我的代码放在真实的服务器上。

欢呼

0 个答案:

没有答案