标签:botframework node-js javascript
因此,除非有人有其他建议,否则我将尝试使用建议的卡片为WebChat bot提供更好的按钮输入.目前已使builder.prompts工作.
但我的问题是,使用以下示例:
var msg = new builder.Message(session)
.text("Thank you for expressing interest in our premium golf shirt! What color of shirt would you like?")
.suggestedActions(
builder.SuggestedActions.create(
session, [
builder.CardAction.imBack(session, "productId=1&color=green", "Green"),
builder.CardAction.imBack(session, "productId=1&color=blue", "Blue"),
builder.CardAction.imBack(session, "productId=1&color=red", "Red")
]
));
session.send(msg);
我实际上如何得到答复?它会自动将用户值写入聊天记录中(我试图避免这种情况).尝试使用response.entity等,但没有任何返回.
该文档说:“当用户点击建议的操作之一时,该漫游器将从用户处收到一条消息,其中包含相应操作的值.”
谢谢.
解决方法:
一些事情.
首先,imBack基本上代表IM返回或即时消息返回.它将响应发送给对话.您需要postBack,它将隐藏响应,但是请记住,对于某些渠道,postBack将映射到imBack,因此您必须进行一些调查.对于Bot模拟器,postBack将隐藏响应.
第二件事,如果您在漫游器运行时观察控制台,则会看到该漫游器将尝试通过imBack方法路由到该值.您将要通过对话框或意图来捕获它.这是一个小例子,可能效率不高:
intents.matches(/^suggest/i, [(session) => {
var msg = new builder.Message(session)
.text("Thank you for expressing interest in our premium golf shirt! What color of shirt would you like?")
.suggestedActions(
builder.SuggestedActions.create(
session, [
builder.CardAction.postBack(session, "productId=1&color=green", "Green"),
builder.CardAction.postBack(session, "productId=1&color=blue", "Blue"),
builder.CardAction.postBack(session, "productId=1&color=red", "Red")
]
));
session.send(msg);
}]);
intents.matches(/^productId/i, [
(session, args, next) => {
console.log(args);
}
]);
在上面使用意图对话框的示例中,我可以从第二个intent.matches方法调用的args中的匹配数组访问值.
还有其他方法可以执行此操作,但这是一个简单的示例.
标签:botframework,node-js,javascript 来源: https://codeday.me/bug/20191025/1932085.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。