Я хочу, чтобы мое приложение slackbot отвечало на канале, о котором говорил пользователь, без записи названия канала в коде вручную.
-example-
проблема: я пригласил своего бота на канал #hello
, #hi
. Я упомянул своего бота на канале #hello
, пишущем @mybot hi there
, но он отвечает только на канал #hi
, который я записал вручную в своем коде.
Я хочу, чтобы мой бот автоматически определял, с какого канала пришло сообщение, и отвечал на тот же канал, который упомянул пользователь.
Не похоже на код, который я написал bot.postMessageToChannel('everyone', `Chuck Norris: ${joke}`,params);
Вот ссылка на модуль, который я использовал, и мой код
https://github.com/mishk0/slack-bot-api
const SlackBot = require('slackbots');
const axios = require('axios');
const bot = new SlackBot({
token : "",
name : ""
});
// Start Handler
bot.on('start', () =>{
const params = {
icon_emoji: ':)'
};
bot.postMessageToChannel('everyone', 'Feeling tired??? Have some fun with @Joker!'
, params);
});
// Error Handler
bot.on('error', (err) => console.log(err));
//Message Handler
bot.on('message', (data) => {
if(data.type !== 'message'){
return;
}
console.log(data);
handleMessage(data.text);
});
// Responding to Data
function handleMessage(message){
if(message.includes('chucknorris')){
chuckJoke();
}
else if(message.includes(' yomama')){
yoMamaJoke();
}
else if(message.includes(' random')){
randomJoke();
}
else if(message.includes(' help')){
runHelp();
}
}
// Tell a Chuck Norris Joke
function chuckJoke(){
axios.get('http://api.icndb.com/jokes/random/')
.then(res =>{
const joke = res.data.value.joke;
const params = {
icon_emoji: ':laughing:'
};
bot.postMessageToChannel('everyone', `Chuck Norris: ${joke}`,params);
});
}