6

我有一个使用 botkit 运行的机器人。我想发出一条警告消息,即当您直接与机器人交谈时,编辑的消息将被忽略,所以我正在这样做:

controller.on('message_changed', function(bot, message) {
    bot.reply(message, ":warning: Your edit was ignored.");
});

机器人在一个有很多人的房间里,这样这些人就可以私下“访问”机器人。

问题:当有人在房间中编辑消息时,机器人会发送警告。避免这种情况的最佳方法是什么?

我希望避免将房间 ID 硬编码到机器人不应该回复的房间中,因为我们可能在其他房间中有机器人。

4

1 回答 1

3

您可以通过查看消息通道是否以D开头来检查消息通道以确定它是否是“direct_message” 。如果它以 D 开头,则它是正在编辑的直接消息。像这样的东西应该工作。

controller.on('message_changed', function(bot, message) {
    if (message.channel.match(/^D/)) {
        bot.reply(message, ":warning: Your edit was ignored.");
    }
});

此外,如果您希望它在用户直接向机器人发送消息的聊天室中工作,您可以检查消息文本以查看它是否以@yourBotsName 开头

于 2016-08-19T16:43:50.740 回答