Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (45 sloc) 3.28 KB

Salesforce Setup

Getting Started

  1. First you'll need an account on DeveloperForce. If you don't already have one, you can create one at: http://developer.force.com/join

  2. Next, you need to configure a new connected app in your developer profile in order to retrieve all the keys, tokens, urls nedded to connect your app with SalesForce. In order to do this:

    • Go to -> Setup (top) > Create (side) > Apps > Connected Apps (scroll down ) > New Check "Enable Oauth Settings".
    • Next, add all permissions. Use "http://localhost:3000/oauth/_callback" as your callback URL.
    • You'll be using the Oauth2 web server flow, so you need your personal security code. If you don't have one, you'll need to reset it for Salesforce to email it to you.
    • Go to your Profile by clicking in your name (top right) > My Settings > Personal (left menu) > Reset my security token. After that Salesforce should email it to you.
    • You'll need your password + security token to be able to login (PASSWORDsecurityCode (concatenated, no space)).
  3. Now we need to setup an object with a couple of custom fields for streaming communication. In this example we'll create a new object and call it 'Sphero_Message': We also add two custom fields to this object: 'Sphero_Name' and 'Bucks'.

    • Go to Setup -> Create -> Object -> New Custom Object and name it Sphero_Message, then click Save.
    • Once in the Object Details view create two custom fields, Sphero_Name and Bucks both of type text.
    • We've created a Salesforce package that installs the Sphero_Message Object and the apexRest class for you to speed things up. Install it here
  4. Setup apexRest code so we can create new objects using RESTfull implementation:

    • Go click in in you profile name (top right) > Developer Console.
    • When the developer console opens click File > New Apex Class, name it SpheroApex and then copy/paste the following code to that window:
    @RestResource(urlMapping='/SpheroController/*')
    global with sharing class SpheroController {
      @HttpPost
        global static void create(String spheroName, String bucks) {
          SpheroController.handleSpheroMessage(spheroName, bucks);
        }
    
      public static void handleSpheroMessage(String spheroName, String bucks) {
        Sphero_Message__c sm = new Sphero_Message__c();
        sm.Sphero_Name__c = spheroName;
        sm.Bucks__c = bucks;
        insert sm;
      }
    }
    
    • Save the SpheroApex class, File > Save.
  5. To be able to stream we need to setup a PushTopic to connect to.

    • Go to Developer Console click on Debug -> Open Execute Anonymus Code or (Ctrl+E)
    • Add the following code to create the new pushTopic with the query you want to execute and the events you want it to report.
    PushTopic pt = new PushTopic();
    pt.apiversion = 28.0;
    pt.name = 'SpheroMsgOutbound'; pt.description = 'All new Sphero Message records';
    pt.query = 'SELECT Id, Name, Sphero_Name__c, Bucks__c FROM Sphero_Message__c';
    insert pt;
    System.debug('Created new PushTopic: '+ pt.Id);
    
  6. At this point everything in salesforce should be ready and we should be able to connect, authenticate, push/create records through apexRest and stream information using the pushTopic.

Something went wrong with that request. Please try again.