我正在尝试通过db将我的机器人连接到azure函数。我输入了azure函数URL作为Webhook,它将请求接收为POST http消息。
我尝试用以下 test 消息(以及更多更简单的消息)进行答复:
{
"fulfillmentText":"fulfillmentText",
"fulfillmentMessages": [{"simpleResponse":{"textToSpeech":"text","ssml":"ssml","displayText":"text"}}]
}
并得到答复:
Webhook呼叫失败。错误:无法解析webhook JSON响应: 期望消息对象,但得到: “笀∀昀甀氀昀碗氀氀洀攀渀琀吀攀砀琀∀㨀∀昀甀氀昀碗砀琀∀㨀∀昀甀氀昀攀渀琀吀攀砀琀∀Ⰰ∀昀甀氀昀碗氀氀洀攀渀琀䴀攀猀猀愀最攀猀∀㨀嬀笀∀猀碗洀瀀氀攀刀攀猀瀀漀渀猀攀∀㨀笀∀琀攀砀琀吀漀匀瀀攀攀挀栀∀㨀∀琀攀砀琀∀Ⰰ∀猀猀洀氀∀㨀∀猀猀洀氀∀Ⰰ∀搀碗猀瀀氀愀礀吀攀砀琀∀㨀∀琀攀砀琀∀纪纪崀纪”。
每次我在对话流中输入查询时,我都可以检查诊断信息,并且在“履行响应”选项卡中可以清楚地看到响应,但是在“响应状态”选项卡中会出现上述错误。
我非常感谢您的帮助。
答案 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。