带有API2 webhook的Google Dialogflow:无法解析响应

时间:2018-11-26 15:01:10

标签: http webhooks dialogflow

我正在尝试通过db将我的机器人连接到azure函数。我输入了azure函数URL作为Webhook,它将请求接收为POST http消息。

我尝试用以下 test 消息(以及更多更简单的消息)进行答复:

{
  "fulfillmentText":"fulfillmentText",
  "fulfillmentMessages": [{"simpleResponse":{"textToSpeech":"text","ssml":"ssml","displayText":"text"}}]
}

并得到答复:

  

Webhook呼叫失败。错误:无法解析webhook JSON响应:   期望消息对象,但得到:   “笀∀昀甀氀昀碗氀氀洀攀渀琀吀攀砀琀∀㨀∀昀甀氀昀碗砀琀∀㨀∀昀甀氀昀攀渀琀吀攀砀琀∀Ⰰ∀昀甀氀昀碗氀氀洀攀渀琀䴀攀猀猀愀最攀猀∀㨀嬀笀∀猀碗洀瀀氀攀刀攀猀瀀漀渀猀攀∀㨀笀∀琀攀砀琀吀漀匀瀀攀攀挀栀∀㨀∀琀攀砀琀∀Ⰰ∀猀猀洀氀∀㨀∀猀猀洀氀∀Ⰰ∀搀碗猀瀀氀愀礀吀攀砀琀∀㨀∀琀攀砀琀∀纪纪崀纪”。

每次我在对话流中输入查询时,我都可以检查诊断信息,并且在“履行响应”选项卡中可以清楚地看到响应,但是在“响应状态”选项卡中会出现上述错误。

我非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

看起来HTTP响应的内容类型可能不清楚。确保HTTP响应将content-type头显式设置为“ application / json”或可能的事件“ application / json; charset = utf-8”。

答案 1 :(得分:0)

该问题与Azure函数URL有关。对我来说,一种解决方法是在Visual Studio中编写该函数,部署到localhost,然后将ngrok用作dialogflow调用Webhook的隧道,而不是使用Azure Functions URL。