对于您的用例,由于按钮响应类型在单击时始终重定向到页面,因此您可以考虑使用建议芯片。
{
"richContent": [
[
{
"options": [
{
"text": "Chip 1"
},
{
"text": "Chip 2"
}
],
"type": "chips"
}
]
]
}
当用户点击它时,建议芯片就像用户文本查询一样,因此,您可以创建一个可由芯片文本触发的路由,并从发送到您的 webhook 的webhook 请求中获取文本查询以返回相应的信息. 例如:
意图:
路线:
然后在您的 webhook 中,您可以在text
webhook 请求的字段中获取参数值,您将参考该参数值,以便使用相应信息创建 webhook 响应。
下面是一个使用 Express 的 Node.js 示例:
app.post("/webhook", (req, res) => {
let option = req.body.text;
let jsonResponse = {
fulfillment_response: {
messages: [
{
text: {
//fulfillment text response to be sent to the agent
text: [`You've chosen the ${option} option`]
}
}
]
}
};
res.json(jsonResponse);
});
或者,您也可以使用实体类型并将所选芯片分配到一个参数中,该参数也将发送到您的 webhook。
要将芯片的文本分配给参数,路线的意图应该包含训练短语,这些短语被注释到包含所有选项的实体类型。例如:
意图:
实体类型:
然后在您的 webhook 中,您可以在 webhook 请求的intentInfo .parameters.parameter_id.resolvedValue字段中获取参数值,您将参考该字段以使用相应信息创建 webhook 响应。
下面是一个使用 Express 的 Node.js 示例:
app.post("/webhook", (req, res) => {
let option = req.body.intentInfo.parameters.options.resolvedValue;
let jsonResponse = {
fulfillment_response: {
messages: [
{
text: {
//fulfillment text response to be sent to the agent
text: [`You've chosen the ${option} option`]
}
}
]
}
};
res.json(jsonResponse);
});
结果: