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!
- Get Chatter Activity Statistics for a User
- Get My News Feed
- Get a Record Feed
- Get a Group Feed
- Post a Feed Item
- Like a Feed Item
- Post a Comment
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:
- A JavaScript object containing the data for the function
- 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.
id
: Required. The id of the user to return statistics for.
myNewsFeed()
Returns the context user's news feed.
recordFeed()
Returns the feed for a specified record.
id
: Required. The id of the record to return the feed for.
groupFeed()
Returns the feed for a specified group.
id
: Required. The id of the group to return the feed for.
postFeedItem()
Posts a new feeditem for a record.
id
: Required. The ID of the parent this feed element is being posted to. This value can be the ID of a user, group, or record, or the string me to indicate the context user.text
: Required. The text of the post.
postComment()
Posts a new comment on a feeditem.
id
: Required. The id of the feeditem to post the commenttext
: Required. The text of the comment.
likeFeedItem()
Likes the specified feeditem.
id
: Required. The id of the feeditem to like.
Todo
- Rewrite tests using nock.
- Hook up to travis-ci.org
Contributors
- Jeff Douglas -> jeffdonthemic
Changelog
v0.0.1
: Initial release.