我一直在玩DialogFlow和Fulfillment,但直到现在,我总是像这样从Webhook将FulfillmentText返回到我的机器人:
response = {
fulfillmentText: "Some message!"
};
有没有办法在这里返回一组选项(快速回复)?基本上我想返回3个按钮,每个选项a,b和c一次。这可能吗?
谢谢!
我可以使用以下代码将卡片发回,但找不到能快速回复而不是卡片的样本。
"fulfillmentMessages": [
{
"card": {
"title": "card title",
"subtitle": "card text",
"imageUri": "https://assistant.google.com/static/images/molecule/Molecule-Formation-stop.png",
"buttons": [
{
"text": "button text",
"postback": "https://assistant.google.com/"
}
]
}
}
],
答案 0 :(得分:1)
从Dialogflow中检查Rich UI Messages。根据您所开发的平台,您可以显示快速答复或卡片或其他Rich UI消息。
在Web和移动应用程序(本机)上,您需要通过传递所需标志(按钮,复选框等)并处理文本响应来自行处理它们。
更新
如果使用的是Google Assistant,则可以点击以下链接https://developers.google.com/actions/assistant/responses
最好使用客户端库来开发Webhooks
Action-On-Google NodeJS Client
Dialogflow NodeJS Fulfillment Client
答案 1 :(得分:1)
已经有一段时间了,但是如果有人仍在寻找,这个小捷径在Facebook Messenger Platform上对我有用。
const {Suggestion} = require('dialogflow-fulfillment');
agent.add(new Suggestion('Suggestion'));
答案 2 :(得分:0)
这里是一个示例:
#include <iostream>
using namespace std;
int a = 0;
int dondur(a){
return a;
}
int main(int argc, char **argv)
{
int b=20;
cout << dondur(b);
return 0;
}
答案 3 :(得分:0)
我自己遇到了这个问题。通常,问题在于card-response.js的创建者并没有预料到会有人想作为卡按钮来进行快速回复。用下面的代码替换dialogflow-fulfillment / src / rich-response / card-response.js中的代码。我刚刚添加了一些支持缺少buttonUrl的异常。
$(document).ready(function(){
var xx = document.getElementById("status");
var xy = document.getElementById("hapus");
var $checkboxes = $('#example td input[type="checkbox"]');
$checkboxes.change(function(){
var countCheckedCheckboxes = $checkboxes.filter(':checked').length;
if (countCheckedCheckboxes == 1){
xx.style.display = "block";
xy.style.display = "block";
} else if (countCheckedCheckboxes >= 2) {
xx.style.display = "none";
xy.style.display = "block";
} else {
xx.style.display = "none";
xy.style.display = "none";
}
});
});