This library makes easier to call ChattyCrow API (http://chattycrow.com/).
npm install chattycrow
var chattycrow = require('chattycrow').createClient('token', 'default_channel');
Every sender and contacts methods header:
send<Service>(payload, [contacts, options], callback);
INFO: payload and calback is required, but callback can be null.
function chattyCrowResponse(err, body, res) {
if (err) {
console.log(err.message);
} else {
// It depends on request
}
}
ChattyCrow always try to send message to all contacts from contact list or contacts specified in request.
{
"status": "OK",
"msg": "15 of 15 notifications created.",
"success" : 15,
"total" : 15,
"contacts" : []
}
{
"status": "PERROR",
"msg": "12 of 15 notifications created.",
"success" : 12,
"total" : 15,
"contacts" : [
"test1", "test2", "test3"
]
}
{
"status": "OK|ERROR|PERROR",
"msg": "Status message",
"stats" : {
"success" : 15,
"exists" : 28,
"failed" : 12
},
"contacts" : {
"exists" : [ "franta5", "franta6" ],
"failed" : [ "franta1", "franta4" ]
}
}
Not yet implemented!
chattycrow.sendIos({ payload: { 'hello' }}, [ 'contacts', 'contact2' ], {channel: 'other', token: 'not_default'}, chattyCrowResponse);
chattycrow.sendAndroid({ payload: { data : { key1 : 'hello' }}, chattyCrowResponse);
chattycrow.sendSkype('Skype message', null);
chattycrow.sendJabber('Jabber message', null);
chattycrow.sendJabber('SMS message', chattyCrowResponse);
It's actually very usable, you can automatically add or remove contacts in your application after user was registered, it's great for example email notification subscription.
function contactAddResult(err, body, response) {
if (err) {
console.log(err.message);
} elsif (body) {
console.log('Status: ' + body.status);
console.log('Message: ' + body.msg);
console.log('Stats: ' + body.stats.success + '/' + body.stats.exists + '/' + body.stats.failed);
}
}
chattycrow.addContacts(['test1', 'test2'], contactAddResult);
function contactRemoveResult(err, body, response) {
if (err) {
console.log(err.message);
} else if (body) {
console.log('Status: ' + body.status);
console.log('Message: ' + body.msg);
console.log('Stats: ' + body.stats.success + '/' + body.stats.failed);
}
}
// Add contacts
chattycrow.removeContacts(['test1', 'test2'], { channel: 'other than default' }, contactRemoveResult);