【发布时间】:2017-08-04 06:45:56
【问题描述】:
我正在尝试利用 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.
}
});
【问题讨论】: