1.2.2 • Published 5 years ago

smartslack v1.2.2

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

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

1.2.2

5 years ago

1.2.1

7 years ago

1.2.0

9 years ago

1.1.3

9 years ago

1.1.2

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago