gpt4 book ai didi

node.js - Slack Bot 在 Node js 中回复自己的消息

转载 作者:搜寻专家 更新时间:2023-11-01 00:39:18 25 4
gpt4 key购买 nike

我正在尝试在 nodejs 中制作一个 slack 机器人,它根据用户的输入回复用户。但是到目前为止,机器人一直在回复自己的消息

这是我的机器人的代码

let Bot = require('slackbots');

// create a bot
let settings = {
token: 'xoxb-10584202949',
name: 'BotHelp'};

let bot = new Bot(settings);
bot.on('start', function() {

bot.postMessageToChannel('general', 'At your service');

});

bot.on('message',function (data) {
console.log(data);
if (data.username != "BotHelp" && data.subtype != 'bot_message'){
bot.postMessageToChannel('general', 'Yoooo');
}
});

数据控制台日志 打印

{ type: 'hello' }
{ text: 'At your service',
username: 'BotHelp',
bot_id: 'B336WGVSM',
type: 'message',
subtype: 'bot_message',
team: 'T2ZAW44P3',
user_team: 'T2ZAW44P3',
channel: 'C303W2D4M',
ts: '1479877794.000266' }
{ type: 'presence_change',
presence: 'active',
user: 'U33QS0VEF' }

那么,为什么我的验证无法检查消息是否是从机器人本身发送的?

谢谢你的时间

最佳答案

我遇到了同样的问题。 slackbots 中的消息事件会针对每个事件触发,即 user_typing、message_marked、desktop_notification。所有事件都可以查here .现在我为确保我的机器人在收到自己的消息后没有发送消息所做的是:

bot.on('message',function (data) {
if (data.user != "Uxxxxxx" && data.message === 'message'){
bot.postMessageToChannel('general', 'Yoooo');
}

data.user 给出了一个唯一的 id,你可以通过 console.log(data) 得到它并找到你的 user id。

此外,如果您想指定要收听的消息,请说直接消息。 data 中的 channel id 将以 D 开头。对于私有(private) channel , channel ID 以 G

开头

希望这对您有所帮助。我知道这里还有很多事情要做,但这是最基本的。你可以在此基础上成长。我知道我会努力 :D

关于node.js - Slack Bot 在 Node js 中回复自己的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756524/

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