6

ボットキットを使用してボットを実行しています。ボットと直接話しているときだけ、編集されたメッセージが無視されるという警告メッセージを表示したいので、次のようにしています。

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 に答える