psychovisual
psychovisual

Reputation: 11

Javascript SlackBot postMessage function is spamming messages

I am trying to set up a slack bot using javascript and a few helpful libraries.

All it does is run a postMessageToChannel Method when a user of the channel mentions a certain keyword " help"

My issue is when the runHelp() function is called it doesn't just post one message to the slack #channel but many. Maybe i am missing something here that someone can help me figure out.

Thanks,

Here's the 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);

}

Result:

enter image description here

Upvotes: 0

Views: 361

Answers (1)

psychovisual
psychovisual

Reputation: 11

Created an infinite loop because "This is an automated help message" includes the text "help" which triggers the bot. -.-

Upvotes: 1

Related Questions