如何在Microsoft Bot Framework v.3(Node.js)中自动发送欢迎消息并加载特定对话框



我试图在我的机器人启动时显示一条欢迎消息,同时加载一个特定的对话框。我们在我工作的公司使用的是版本3(我知道,它很旧,不受支持(。

就欢迎信息而言,https://learn.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-handle-conversation-events?view=azure-bot-service-3.0表示使用on conversationUpdate,这很好,但这似乎与https://blog.botframework.com/2018/07/12/how-to-properly-send-a-greeting-message-and-common-issues-from-customers/,这建议不要使用conversationUpdate,除非使用DirectLine,而是发送事件。这是对此事的最终决定吗?有更好的方法吗?

我还想在欢迎信息后自动加载一个对话框。我该怎么做?我可以在上面的"on conversationUpdate"事件期间访问会话并直接在那里加载对话框吗?有更好的方法吗?

谢谢你的帮助!

这是矛盾的,但在大多数情况下,conversationUpdate可能是您的最佳选择。但是,由于通道处理此问题的方式不同,您应该意识到结果可能会有所不同。对于直达线路,利用发送事件是一个更好的选择。

一个例子,在需要的情况下:

bot.on('conversationUpdate', function(message) {
if (message.membersAdded) {
message.membersAdded.forEach(function(identity) {
if (identity.id === message.address.bot.id) {
var reply = new builder.Message()
.address(message.address)
.text("Welcome");
bot.send(reply);
}
});
}
});

要立即调用特定对话框,请执行以下操作:

bot.on('conversationUpdate', function (message) {
if (message.membersAdded) {
message.membersAdded.forEach(function (identity) {
if (identity.id === message.address.bot.id) {
bot.beginDialog(message.address, '/main');
}
});
}
});
bot.dialog('/main', [
function (session, args, next) {
session.send("Glad you could join.");
session.beginDialog('/next');
}
]);

只需将两者结合起来即可发送欢迎信息并启动对话框。

希望得到帮助!

最新更新