我正在尝试利用Slack的实时消息(RTM)API从“Greeter Bot”向我的团队新加入的用户发布欢迎消息。
我正在听的事件是team_join
。
我已确认该事件正在触发,并且该消息可以在收到该事件后发送给之前加入的用户。但是,在尝试通知新加入的用户时,没有任何结果。 在通知用户之前,我已经在收到事件后添加延迟(最多45秒),但仍然没有骰子。
这是我的index.js
文件:
var SlackBot = require('slackbots');
var bot = new SlackBot({
token: process.env.SLACK_TOKEN || '',
name: process.env.BOT_NAME || 'greeterbot'
});
bot.on('message', function(data) {
var self = this;
if ('team_join' === data.type) {
setTimeout(function() {
var message = 'hello.';
// this works. 'some crusty old user' gets a DM message from my greeterbot.
self.postMessageToUser('some crusty old user', message, { as_user: true });
// FAIL. what am i doing wrong?!
self.postMessageToUser(data.user.name, message, { as_user: true });
}, 45000);
console.log("'" + data.user.name + "' has joined the team."); // works. the user name is present in the log.
}
});
答案 0 :(得分:3)
我明白了。我正在使用的底层机器人库存在缓存问题。
供参考,以下是旨在解决此问题的PR的链接。 https://github.com/mishk0/slack-bot-api/pull/25
立即切换库。
答案 1 :(得分:2)
我们的Slack团队Wikipedia使用我们编写的SKGTech.io。 Janitr是一款Slack机器人,可根据您的喜好欢迎新用户。