我需要知道如何检测用户何时登录或退出Slack中的团队。
我正在构建我的第一个Slack应用程序,它包含在数据库中存储用户的状态,我需要一个指导,知道如何检测用户何时登录和退出,自动更改其状态
我正在使用Node.js开发并在Heroku上托管它。
修改
我已经安装了@slack/client
模块,这就是我在用户登录或注销时尝试管理的方式:
rtm.start();
rtm.on(RTM_EVENTS.PRESENCE_CHANGE, function(x) {
db.users.insert({
userid: x.user,
status: x.presence === 'active' ? 'HERE' : 'OFF'
});
});
但是当我关闭浏览器标签时,它没有检测到,当我保持闲置30分钟以及刷新页面或登录时。
答案 0 :(得分:3)
我相信您会通过RTM API看到presence_change
事件。有人将被设置为"远离"当他们退出(或手动设置自己离开)和"活跃"当他们登录时(或手动将自己设置为活动状态)。
修改强>
这是我的代码:
var RtmClient = require('@slack/client').RtmClient;
var RTM_EVENTS = require('@slack/client').RTM_EVENTS;
var token = '<REDACTED>';
var rtm = new RtmClient(token);
rtm.on(RTM_EVENTS.PRESENCE_CHANGE, function (event) {
console.log(event.user + ': ' + event.presence);
});
rtm.start();
当我向Slack团队打开一个标签然后关闭它时的输出:
U11C8V57T: active
U11C8V57T: away