smartslack
v1.2.2
Published
SmartSlack is a node.js module for Slack's Real Time Messaging API
Downloads
27
Maintainers
Readme
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('[email protected]', '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