gpt4 book ai didi

node.js - 如何使用node.js让Slack机器人在同一 channel 动态回复

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:48 24 4
gpt4 key购买 nike

我想让我的 slackbot 应用程序在用户提到的 channel 上进行应答,而无需在代码中手动写入 channel 名称。

-示例-
问题:我邀请我的机器人进入 channel #hello#hi。我在 channel #hello 中提到了我的机器人,在那里写了 @mybot hi ,但它只回复了我在代码中手动写下的 channel #hi
我希望我的机器人能够自动查找消息来自哪个 channel ,并在用户提到的同一 channel 进行回复。
不像我写的代码 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);
});
}

最佳答案

来自here您会在 message 上发现它返回带有 channel id 的数据对象

然后您可以从您使用过的 API 中使用 postMessage()

postMessage(id, text, params) (return: promise) - posts a message to channel | group | user by ID,

bot.on('message', (data) => {

bot.postMessage(data.channel, 'Feeling tired??? Have some fun with @Joker!'
, params);
console.log(data);
handleMessage(data.text);
});

关于node.js - 如何使用node.js让Slack机器人在同一 channel 动态回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55333565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com