slack-rtm-presence

1.0.1 • Public • Published

slack-rtm-presence

A lightweight way to keep your bot "present" in all teams.

Currently, if you want to have a green light next to your bot, Slack requires you to keep an open Web Socket connection to each team that your bot is in. This module takes a team token and opens a Web Socket connection to the team. If the connection at any time goes stale or is closed, the module will try to open a new connection.

Mixes well with https://github.com/FoundersAS/slack-events-listener when using the Slack Events Api.

Install

$ npm install slack-rtm-presence

Usage

You just call the module with a teamToken and functions connectionError and slackError. These both call reconnect() to attempt to reconnect to slack. If you call reconnect(false) with a value the module will stop trying to reconnect for this team.

You can optionally pass a third function wsError which will receive any errors from the Web Socket itself.

var slackRTMPresence = require('./index');
 
var connectionError = function (err, reconnect) {
  console.log(err);
  reconnect();
}
 
var slackError = function (err, reconnect) {
  console.log(err)
  if (err.message === 'invalid_auth' || err.message === 'account_inactive' || err.message === 'not_authed') return reconnect(false);
  reconnect();
}
 
var wsError = console.log;
 
slackRTMPresence(process.env.token, connectionError, slackError, wsError);
 

Credits

The pattern used to check for a stale Web Socket connection is borrowed from the good work of https://github.com/howdyai/botkit.

Package Sidebar

Install

npm i slack-rtm-presence

Weekly Downloads

0

Version

1.0.1

License

MIT

Last publish

Collaborators

  • joshuakarjala