Cylon.js (http://cylonjs.com) is a JavaScript framework for robotics and physical computing using Node.js
This module provides an adaptor and driver for Force.com (http://force.com/). It uses the official JSforce module (https://github.com/jsforce/jsforce).
$ npm install cylon cylon-force
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
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
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.
We're busy adding documentation to our web site at http://cylonjs.com/ please check there as we continue to work on Cylon.js
Thank you!
For our contribution guidelines, please go to https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md .
For the release history, please go to https://github.com/hybridgroup/cylon-force/blob/master/RELEASES.md .
Copyright (c) 2013-2015 The Hybrid Group. Licensed under the Apache 2.0 license.