smartslack v1.2.2
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 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);
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