Skip to content

pthm/slack-webhook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slack-webhook

Installation

npm i -S slack-webhook

Usage

Initialization

Setup an incoming webhook and copy the webhook url. This is the only required parameter to initialize the module.

var SlackWebhook = require('slack-webhook')

var slack = new SlackWebhook('https://hooks.slack.com/services/your/webhook/url')

Optionally, you can pass in a defaults attribute to set defaults for the webhook's username, icon_emoji and channel. If no defaults attribute is used, it will default to the configuration that was used on the set up page.

var slack = new SlackWebhook('https://hooks.slack.com/services/your/webhook/url', {
  defaults: {
    username: 'Bot',
    channel: '#general',
    icon_emoji: ':robot_face:'
  }
})

Sending a message

There are two ways to send a message. The first is by passing a string as the argument.

slack.send('some text')

The second is to pass a payload. Any options you pass in here will override the default ones you created at initialization.

slack.send({
  text: 'some text',
  attachments: [
    // optional attachment data
  ],
  username: 'new username',
  icon_emoji: ':scream_cat:',
  channel: '#another-channel'
})

Both versions return a promise.

slack.send('some text').then(function (res) {
  // succesful request
}).catch(function (err) {
  // handle request error
})

Configuring Promise Library

By default, this module uses Node >= v4's Promise object, but you can configure it to use your preferred Promise library.

// define it on initialization
var bluebird = require('bluebird')
var slack = new SlackWebhook('https://hooks.slack.com/services/your/webhook/url', {
  Promise: bluebird
})

// define it after initialization
var q = require('q')
var slack = new SlackWebhook('https://hooks.slack.com/services/your/webhook/url')
slack.Promise = q.Promise

Tests

npm t

Releases

No releases published

Packages

No packages published