要使Google助手向用户显示丰富的响应,必须向其提供example on the Actions on Google docs之类的响应。但是,由于我将Dialogflow用作服务器和Google之间的中介方,因此需要在Webhooks中提供some kind of response to Dialogflow,以表明应该有丰富的响应。从该链接可以看到,文档提到了如何向FB Messenger,Kik,LINE等发送丰富的响应,但没有向Google Assistant发送响应。
我在这里想念什么?我在Dialogflow Web控制台中看到了一个用于丰富响应的选项,但在这里似乎只能输入硬编码的响应,而没有来自服务器的动态数据。什么是正确的方法?
最佳答案
使用Dialogflow集成,Webhook应该返回的响应JSON,以获得丰富的响应,如下所示:
{
"data":{
"google":{
"expectUserResponse":true,
"noInputPrompts":[
],
"richResponse":{
"items":[
{
"simpleResponse":{
"textToSpeech":"Welcome to this Basic Card",
"displayText":"Welcome to this Basic Card"
}
},
{
"basicCard":{
"buttons":[
{
"title":"Button Title",
"openUrlAction":{
"url":"https://some.url"
}
}
],
"formattedText":"Some text",
"image":{
"url":"http://some_image.jpg",
"accessibilityText":"Accessibility text describing the image"
},
"title":"Card Title"
}
}
],
"suggestions":[
{
"title":"Aléatoire"
},
{
"title":"Top"
}
]
}
}
}
}
如果使用的是Node.js library,则还可以使用提供的用于Dialogflow集成的方法来构建rich response。
关于webhooks - 通过Dialogflow Webhook实现向Google的Actions发送丰富的回复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48635067/