smartslack

1.2.2 • Public • Published

SmartSlack Node Module Travis branch Coverage Status npm version License NPM

Overview

SmartSlack is a Node.JS module for Slack's Real Time Messaging API. SmartSlack implements all of the Slack API methods available to a bot user. This module is intended to be used as a foundation for building custom Slack bots.

Installation

npm install smartslack

Basic Usage

Creating a new instance of SmartSlack and sending a message to Slack

var SmartSlack = require('smartslack');
 
// Configure options
var options = { token: 'xxxx-01234567890-ABCDEFGHIJKLMNOPQRSTUVWX'};
 
// Create new instance
var slackClient = new SmartSlack(options);
 
// Listen for errors...
slackClient.on('error',function(error) {
    console.log(error);
});
 
// Start the Slack RTM session...
slackClient.start();
 
var message = 'Hello Channel!';
 
slackClient.on('connected',function() {
 
    // Send a message to #general
    slackClient.sendToChannel('general',message);
});
 
slackClient.on('message', function(message) {
console.log(message);
});

Events

  • connected : Event fired after reciept of the hello event message from the RTM API
  • error : Emitted anytime the web socket emits an error or after https request errors
  • eventmessage This event is emitted after receiving any RTM event message
  • message Emitted when an event message of type message is recevied
  • open Emmited when the websocket is open
  • close Emitted when the websocket is closed

See the Node.JS documentation for more information on EventEmitter. https://nodejs.org/api/events.html

Methods

Sending message to Slack via the API. Use these methods if you require attachments or other optional message arguments.

postDirectMessage(user, text [args, callback])

The user argument can be the user's id, name or email address.

slackClient.postDirectMessage('user@somedoman.com', 'message text');

postMessage(channel, text [args, callback])

The channel argument can be the channel id or name (i.e. general).

slackClient.postMessage('general', 'message text');

Post as another bot instead of the authenticated bot user.

// Create message options
options = {};
options.as_user = false;
options.username = 'SmartSlack';
options.icon_emoji = ':bulb:';
 
// Send the message via the API
slack.PostMessage('general', 'A message from SmartSlack', options);

Post As Bot

Post with a message attachment For more information on attachments, review the Slack API documentation.

var options = {};
options.as_user = false;
options.username = 'SmartSlack';
options.icon_emoji = ':bulb:';
options.attachments = [];
 
// Create the attachement
var attachment = client.createAttachment('The attachment title');
    attachment.text = 'This is the attachment message';
    attachment.fallback = 'This is the text message of the attachment';
    attachment.pretext = 'This is the attachment pretext';
    attachment.color = 'good';
    attachment.author_name = 'Author Name';
    attachment.addField('Field 1','Field 1 Value', true);
    attachment.addField('Field 2','Field 2 Value', true);
    options.attachments.push(attachment);
 
// Send the message via the API
slack.PostMessage('general', '', options);

Post As Bot

Use these methods to send via the RTM socket

sendToChannel(channel, text [callback])

sendToGroup(group, text [callback])

sendToUser(username, text [callback])

The user argument can be the user's id, name or email address'

 
// Send some  real time message's
client.sendToUser('phillip', 'Hello Channel!');
 
client.sendToGroup('private-group', 'Hello Group!');
 
client.sendToChannel('general', 'Hello Channel!');
 

License

MIT Copyright © Phillip J. Henslee II

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.2.2
    1
    • latest

Version History

Package Sidebar

Install

npm i smartslack

Weekly Downloads

8

Version

1.2.2

License

MIT

Unpacked Size

133 kB

Total Files

38

Last publish

Collaborators

  • philliphenslee