Receive text messages for conversations on Slack channels using Twilio.
You can import it as a package (see below), or use it directly from the command-line.
Install via npm:
$ npm install --save slack-texts
Import the package and specify keys:
var slack_texts = require('slack-texts');
var keys = {
slack: {
token: '<slack-token>'
},
twilio: {
sid: '<twilio-sid>',
token: '<twilio-token>',
phone: '<twilio-phone>'
}
};
var options = {
team_name: 'go-team',
ignore_case_keywords: true,
keywords: ['economy', 'responsive'],
channel_names_to_monitor: ['announcements', 'development'],
send_to_contacts: [
{ phone: '+10000000000' },
{ phone: '+19999999999' },
{ phone: '+15555555555' }
]
};
var st = slack_texts.init(keys, options);
st.start(); // Async call.
// Do other stuff here, if necessary.
Run:
$ node app.js
- Specify phone numbers to send messages to
- Monitor a specific list (or all) channels
- Use only messages that contain specified keywords
Initializes and returns a new slack_texts instance. It the same as calling
new slack_texts(..)
.
var slack_texts = require('slack-texts');
var st = slack_texts.init(keys, options);
The two arguments are:
-
keys:
Twilio and Slack API keys, as shown in the Quick start section. All fields are required.
-
options:
Configuration for the
slack_texts
instance. The default values are shown below.{ // The team name to display in text messages. // Type: string. team_name: '', // Whether to ignore case when filtering messages by keyword. // Type: boolean. ignore_case_keywords: true, // Keywords to filter messages by. If a messages contains any // of the keywords, it will be used for text notifications. // To disable keyword filtering, leave the property undefined // or use an empty array. // // Type: Array<string>. keywords: [], // The channels to listen to. If a message is sent to these channels, // it will be used for text notifications (subject to other // configuration). To listen to all channels, leave the property // undefined or use an empty array. // // Type: Array<string>. channel_names_to_monitor: [], // List of objects, each object containing a phone field (string). // Text messages will be sent to these phones. // // Type: Array<Object> send_to_contacts: [] }
Listens for new messages asynchronously, and dispatches text messages depending on the provided options. The method takes no arguments.
var slack_texts = require('slack-texts');
var st = slack_texts.init(keys, options);
st.start();
Pull requests are welcome.
- Fork the repository
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
You can also create an issue for new features and bug fixes.
The MIT License. Please see the LICENSE file at the root of this repository.