Force
Repository| Issues
This modules provides an adaptor + driver combination for communicating with the Salesforce Force.com platform.
It uses the official jsforce module.
For more info about the Force platform, click here.
How to Install
$ npm install cylon cylon-force
How to Use
var Cylon = require('cylon'); Cylon.robot({ connections: { sfcon: { adaptor: 'force', sfuser: process.env.SF_USERNAME, sfpass: process.env.SF_SECURITY_TOKEN } }, devices: { salesforce: { driver: 'force' } }, work: function(me) { me.salesforce.subscribe('SpheroMsgOutbound', function(data) { console.log(data); }); var i = 0 ; every((2).seconds(), function() { var toSend = {spheroName: 'globo', bucks: i++} me.salesforce.push('/SpheroController/', toSend); }); } }); Cylon.start();
To run the above example:
SF_USERNAME='yourusername' SF_SECURITY_TOKEN='yourpasswordandtoken' node examples/salesforce.js
How to Connect
To setup Salesforce connection, authentication, app/object creation and streaming follo the instructions in: https://github.com/hybridgroup/cylon-force/blob/master/salesforce-setup.md
Connecting to Salesforce using cylon-force
If you are using a Salesforce developer account(or personal account), you only need to provide sfuser
(username)
and sfpass
(password + security_token to connect to the API as explain in Salesforce site) in the robot connection, as shown here:
connections: { sfcon: { adaptor: 'force', sfuser: process.env.SF_USERNAME, sfpass: process.env.SF_SECURITY_TOKEN } },
However if you are part of an organization, and having trouble querying/updating objects and streaming events,
you probably need to provide the organization credentials for authorization, this are the orgCreds/oauth2 credentials,
you can either pass orgCreds
or oauth2
parameter to the connection, as shown below and explain in the
JSForce Docs:
var cylon = require('cylon'); cylon.robot({ connections: { sfcon: { adaptor: 'force', sfuser: process.env.SF_USERNAME, sfpass: process.env.SF_SECURITY_TOKEN, // orgCreds and oauth2 are interchangeable here, you can use either. orgCreds: { clientId: 'CLIENT_ID', clientSecret: 'CLIENT_SECRET', redirectUri: 'http://localhost:3000/oauth/_callback' } } }, devices: { salesforce: { driver: 'force' } }, work: function(me) { me.salesforce.subscribe('SpheroMsgOutbound', function(err, data) { console.log('arguments: ', arguments); cylon.Logger.info('err received:', err); cylon.Logger.info('data received:', data); }); var counter = 0; every((2).seconds(), function() { var toSend = { spheroName: 'globo' + counter, bucks: counter }; me.salesforce.push('/SpheroController/', toSend, function(err, data) { cylon.Logger.info('Sphero globo' + counter + ' has been sent to Salesforce.'); }); counter++; }); } }); cylon.start();
If you provide all credentials and still have problems to create/query/update objects and stream info from salesforce please create an issue here: cylon-force issues.
Drivers
There is only a single driver as listed below for cylon-force: