Javascript Функция SlackBot postMessage рассылает спам сообщения - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь настроить слабого бота, используя javascript и несколько полезных библиотек.

Все, что он делает, это запускает метод postMessageToChannel, когда пользователь канала упоминает определенное ключевое слово "help"

Моя проблема в том, что когда вызывается функция runHelp(), она не просто отправляет одно сообщение в slack #channel, но многие. Может быть, я что-то упускаю здесь, чтобы кто-то помог мне разобраться.

Спасибо,

Вот это js:

const SlackBot = require('slackbots');
const axios = require('axios')
const dotenv = require('dotenv')

dotenv.config()

const bot = new SlackBot({
    token: `${process.env.BOT_TOKEN}`,
    name: 'helpit-bot'
});

// Start Handler
bot.on('start', () => {
    const params = {
        icon_emoji: ':nerd_face:'
    }

    bot.postMessageToChannel('slack-bot', 'HELP IS ON THE WAY', params);
})

// Error Handler
bot.on('error', (err) => {
    console.log(err);
});

// Message Handler
bot.on('message', (data) => {
    if(data.type !== 'message') {
        return;
    }
    handleMessage(data.text);
    return;
})

// Response Handler
function handleMessage(message) {
    if(message.includes(' help')) {
        runHelp();
    } else {
        // Run something else
    }
}

// Show Help
function runHelp() {
    const params = {
        icon_emoji: ':question:'
    }

    bot.postMessageToChannel('slack-bot', 'This is an automated help message', params);

}

Результат:

enter image description here

1 Ответ

1 голос
/ 30 января 2020

Создано бесконечное l oop, потому что «Это автоматическое сообщение помощи» включает в себя текст «помощь», который вызывает бота. -.-

...