Home

Awesome

nforce-chatter

nforce-chatter is a Chatter REST API plugin for nforce.

Features

The Chatter API is #massive so the plugin is a work in progress. The following functionality has been implemented. Pull requests are welcome!

The test/chatter.js mocha test has sample code.

See the Chatter Developer's Guide for complete and official documentation.

Installation

$ npm install nforce-chatter

Usage

Require nforce and nforce-chatter in your app and create a client connection to a Salesforce Remote Access Application with the chatter plugin enabled.

var nforce = require('nforce'),
  chatter = require('nforce-chatter')(nforce),

var org = nforce.createConnection({
  clientId: 'SOME_OAUTH_CLIENT_ID',
  clientSecret: 'SOME_OAUTH_CLIENT_SECRET',
  redirectUri: 'http://localhost:3000/oauth/_callback',
  apiVersion: 'v32.0',  // optional, defaults to current salesforce API version
  environment: 'production',  // optional, salesforce 'sandbox' or 'production', production default
  mode: 'multi', // optional, 'single' or 'multi' user mode, multi default
  plugins: ['chatter']
});

Now we just need to authenticate and get our salesforce OAuth credentials. Here is one way to do this in multi-user mode...

// multi user mode
var oauth;
org.authenticate({ username: 'my_test@gmail.com', password: 'mypassword'}, function(err, resp){
  // store the oauth object for this user
  if(!err) oauth = resp;
});

...or in single-user mode...

// single-user mode
org.authenticate({ username: 'my_test@gmail.com', password: 'mypassword'}, function(err, resp){
  // the oauth object was stored in the connection object
  if(!err) console.log('Cached Token: ' + org.oauth.access_token)
});

See the nforce readme for more detailed instruction on the awesome features of nforce.

nforce-chatter API Basics

Callbacks

The API of nforce-chatter follows typical node.js standards. Callbacks will always pass an optional error object, and a response object. The response object closely resembles the typical responses from the Salesforce REST API.

callback(err, resp);

Calling Functions

API calls take two arguments:

  1. A JavaScript object containing the data for the function
  2. The callback
org.chatter.recordFeed({id: '0037000000TWktt'}, function(err, resp) {
  if (!err) console.log(resp);
  if (err) console.log(err);
});

If you are using multi-user mode, pass the connection info in the hash with the oauth property.

org.chatter.recordFeed({id: '0037000000TWktt', oauth: oauth}, function(err, resp) {
  if (!err) console.log(resp);
  if (err) console.log(err);
});

Running Tests

The mocha tests currently run directly against a Saleforce org. I would like to switch them to use nock in the near future. To run the tests, first you'll need to rename test/config-example.js to test/config.js and enter your connection parameters. Then run the tests.

$ npm test

nforce-chatter Methods

userStatistics()

Returns Chatter statistics for a salesforce user.

myNewsFeed()

Returns the context user's news feed.

recordFeed()

Returns the feed for a specified record.

groupFeed()

Returns the feed for a specified group.

postFeedItem()

Posts a new feeditem for a record.

postComment()

Posts a new comment on a feeditem.

likeFeedItem()

Likes the specified feeditem.

Todo

Contributors

Changelog