Skip to content

Easy to use web server which emits all events received from Slack Events API

License

Notifications You must be signed in to change notification settings

joshuakarjala/slack-events-listener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slack-events-listener

Middleware which emits all events received from Slack Events API. It handles the intial verification with Slack and calls your callback with all events received from Slack.

Easy to use with Express

slack-events-listener is connect middleware. All that's required is that req.body is json.

Install

$ npm install slack-events-listener

Initialize the middleware with your Slack verification token and your event handling callback.

Example

In this example express is being used, but it's not required. It's only required that req.body is json.

var slackEvents = require('slack-events-listener')('<verificationToken>', onSlackEvent);
var bodyParser = require('body-parser');
var app = require('express')();

function onSlackEvent(event, cb) {
  // do something. call cb with err if you want Slack to resend the message (your database might be down)
  writeToDatabase(event, cb);
}

// /slack_events should match whatever webhook you set in Slack
app.use('/slack_events', bodyParser.json(), slackEvents);

Parameters:

  • verificationToken required Find this variable in your Slack application settings - if set to false will skip verification (for quick testing)
  • onSlackEvent required Every time we receive an event from Slack this function will be called with the event payload

Payload format

List of payloads is available at https://api.slack.com/events-api#event_types

Tips

If you want to keep your bot "present" (with green light) in all your teams have a look at https://github.com/FoundersAS/slack-rtm-presence

About

Easy to use web server which emits all events received from Slack Events API

Resources

License

Stars

Watchers

Forks

Packages

No packages published