在Bot Framework文档中有一个good example,其中提到了如何处理ConversationUpdate
事件,该事件允许在连接时向用户发送消息:
bot.on('conversationUpdate', function (message) {
if (message.membersAdded && message.membersAdded.length > 0) {
bot.send(new builder.Message()
.address(message.address)
.text('Hello user, good to meet you!'));
}
});
如果function (message)
在其他 .js 文件模块中定义,如下所示:
var dialog = require("./rootdialog");
bot.on("conversationUpdate", dialog.ConversationUpdate);
在这种情况下如何发送消息,因为bot
变量无法在那里访问?
答案 0 :(得分:1)
我想到的一个技巧是实现一个返回函数的通用函数。然后,将bot传递给通用函数并返回所需的回调函数作为结果:
function ConversationUpdate(bot)
{
return (message) => {
if (message.membersAdded && message.membersAdded.length > 0) {
bot.send(new builder.Message()
.address(message.address)
.text('Hello user, good to meet you!'));
}
}
}
因此,您可以按以下方式编写您想要的内容:
var dialog = require("./rootdialog");
bot.on("conversationUpdate", dialog.ConversationUpdate(bot));