如何通过Slack bot向新加入的用户发送欢迎消息?

时间:2016-08-09 22:56:39

标签: node.js slack-api

我正在尝试利用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.
  }
});

2 个答案:

答案 0 :(得分:3)

我明白了。我正在使用的底层机器人库存在缓存问题。

供参考,以下是旨在解决此问题的PR的链接。 https://github.com/mishk0/slack-bot-api/pull/25

立即切换库。

答案 1 :(得分:2)

我们的Slack团队Wikipedia使用我们编写的SKGTech.io。 Janitr是一款Slack机器人,可根据您的喜好欢迎新用户。