Skip to content

ChattyCrow/chattycrow_nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chatty Crow

ChattyCrow - Node JS library

Build Status

This library makes easier to call ChattyCrow API (http://chattycrow.com/).

Installation

npm install chattycrow

Usage

var chattycrow = require('chattycrow').createClient('token', 'default_channel');

Optional parameters

Every sender and contacts methods header:

send<Service>(payload, [contacts, options], callback);

INFO: payload and calback is required, but callback can be null.

Example callback

function chattyCrowResponse(err, body, res) {
  if (err) {
    console.log(err.message);
  } else {
    // It depends on request
  }
}

Notification response

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"
  ]
}

Contact response

{
  "status": "OK|ERROR|PERROR",
  "msg": "Status message",
  "stats" : {
      "success" : 15,
      "exists" : 28,
      "failed" : 12
  },
  "contacts" : {
      "exists" : [ "franta5", "franta6" ],
      "failed" : [ "franta1", "franta4" ]
  }
}

Email notification - TODO

Not yet implemented!

IOS Push notification

chattycrow.sendIos({ payload: { 'hello' }}, [ 'contacts', 'contact2' ], {channel: 'other', token: 'not_default'}, chattyCrowResponse);

Android Push notification

chattycrow.sendAndroid({ payload: { data : { key1 : 'hello' }}, chattyCrowResponse);

Skype notification

chattycrow.sendSkype('Skype message', null);

Jabber notification

chattycrow.sendJabber('Jabber message', null);

SMS notification (only Czech Republic yet)

chattycrow.sendJabber('SMS message', chattyCrowResponse);

Working with contacts via API

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.

Add contact

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);

Remove contact

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);