Skip to content

Salesforce Marketing Cloud REST Authentication Service

License

Notifications You must be signed in to change notification settings

limit-zero/marketing-cloud-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Salesforce Marketing Cloud (Fuel) Authentication

Authenticates and retrieves an access token for the Salesforce Marketing Cloud API. The token can be used for either the REST or SOAP API.

Features

  • Simple
  • Lightweight
  • Modern: utilizes ES6, Promises via async/await, Object rest spread, and node-fetch
    • As such, Node 8.6 or higher is required.

Install

Install with Yarn

yarn add marketing-cloud-auth

Usage

To retrieve an access token, require the class and provide your API client ID and secret.

// your-file.js
const MarketingCloudAuth = require('marketing-cloud-auth');

// Instantiate the `MarketingCloudAuth` class
const auth = new MarketingCloudAuth({
  clientId: 'your-client-id',
  clientSecret: 'your-client-secret',
});

// Retrieve an access token using async/await...
const retrieve = async () => {
  const token = await auth.retrieve();
  console.log(token);
  // Will output somthing similar to
  // { value: 'your-token', expiresIn: 3479 }
}
retrieve();

// Or directly with a promise...
auth.retrieve().then(token => console.log(token));

Subsequent calls to auth.retrieve will not make additional HTTP requests unless the token has expired or you explicitally force a new call via auth.retrieve({ force: true }).

Once the token is retrieved, you can include it in your REST API calls:

GET https://www.exacttargetapis.com/platform/v1/endpoints
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN

Or your SOAP calls

<soap:header>
  <fueloauth>YOUR_ACCESS_TOKEN</fueloauth>
</soap:header>
<!-- OR (depending on which Salesforce docs you trust...) -->
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:fueloauth xmlns="http://exacttarget.com"
                 xmlns:h="http://exacttarget.com">
      YOUR_ACCESS_TOKEN
    </h:fueloauth>
  </s:Header>
  [...]
 </s:Envelope>

For more information, see