在Bot Framework中的ConversationUpdate事件上向用户发送消息

时间:2017-08-19 01:14:14

标签: node.js events botframework

在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变量无法在那里访问?

1 个答案:

答案 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));