Uncategorized

Use Salesforce REST APIs with Heroku /Utilisation des API REST Salesforce avec Heroku

Learning Objectives /Objectifs de formation

After completing this unit, you’ll be able to: /Une fois cette unité terminée, vous pourrez :

  • Understand the use cases for using Salesforce REST APIs. /Comprendre les cas d’utilisation des API REST Salesforce.
  • Understand the different types of authentication. /Comprendre les différents types d’authentification.
  • Understand how to use the Salesforce REST APIs with apps on Heroku. /Comprendre comment utiliser les API REST Salesforce avec des applications sur Heroku.

Salesforce REST APIs and Heroku /API REST Salesforce et Heroku

The Salesforce REST APIs provide an easy way to integrate with Salesforce through simple HTTP + JSON requests. There are REST APIs to access almost everything on Salesforce, so your custom app can do pretty much anything with the data, processes, and metadata in Salesforce. The REST APIs use OAuth for authentication, which is the standard way of handling REST authentication. /Les API REST Salesforce facilitent l’intégration à Salesforce à l’aide de simples requêtes HTTP + JSON. Il existe des API REST pour accéder à la plupart des éléments dans Salesforce. Par conséquent, votre application personnalisée peut exécuter n’importe quelle opération avec les données, les processus et les métadonnées dans Salesforce. Les API REST utilisent OAuth pour l’authentification, qui correspond à la méthode standard de gestion de l’authentification REST.

Image showing a connection between the objects in Salesforce to Heroku through a REST interface

While the REST APIs can be used directly, there are numerous wrapper libraries around the APIs making them easy to use in Node.jsPythonRuby, Java, and so on. The wrapper libraries handle low-level tasks such as authentication and request and response handling. So instead of manually constructing HTTP requests like (with Node.js as an example): /Les API REST peuvent être utilisées directement. Il existe toutefois plusieurs bibliothèques wrapper pour les API qui facilitent leur utilisation en Node.jsPythonRuby, Java, etc. Les bibliothèques wrapper gèrent les tâches de bas niveau, telles que l’authentification, et la gestion des requêtes et des réponses. Au lieu de construire manuellement des requêtes HTTP telles que (avec Node.js par exemple) :

var query = 'SELECT name Account'; var url = 'https://na1.salesforce.com/services/data/v20.0/query/?q=' + encodeURIComponent(query); request.get(url, { 'auth': { 'bearer': 'bearerToken' } }); 

You can use the open-source nforce library for Node.js and simply do: /Vous pouvez utiliser une bibliothèque nforce de source ouverte pour Node.js et simplement :

org.query({ query: 'SELECT name FROM Account' }); 

Ultimately, the nforce library is doing the same thing under the covers, but the library makes the API easier to use. /En définitive, la bibliothèque nforce exécute les mêmes opérations en arrière-plan, mais en facilitant l’utilisation des API.

You can build application-to-application integrations and custom user interfaces on top of the Salesforce REST APIs. The biggest difference is how authentication is handled. With an app-to-app integration, a single integration user is known by the app, and all calls to the REST APIs are done as that user. With a custom user interface, the user doesn’t directly authenticate with the custom app. Instead, the user walks through the OAuth process to authorize the custom app to make API calls on its behalf. Each request to the REST APIs is done on behalf of the named user that is using the custom user interface. /Vous pouvez élaborer des intégrations application-à-application et des interfaces utilisateur personnalisées sur les API REST Salesforce. La principale différence est la gestion de l’authentification. Avec une intégration application-à-application, un seul utilisateur de l’intégration est connu de l’application et tous les appels aux API REST sont effectués par cet utilisateur. Avec une interface utilisateur personnalisée, l’utilisateur n’est pas directement authentifié à l’application personnalisée. À la place, l’utilisateur suit le processus OAuth afin d’autoriser l’application personnalisée à passer des appels API en son nom. Chaque requête aux API REST est effectuée au nom de l’utilisateur nommé qui utilise l’interface utilisateur personnalisée.

One use case for a app-to-app integration is to transform, collate, and then replicate or proxy the data for another system. For instance, a customer-facing order management application running on Heroku needs to get customer information from Salesforce. This setup can use a single integration user to fetch all the necessary information from Salesforce. /L’intégration application-à-application permet par exemple de transformer, de regrouper, puis de répliquer ou de traiter par proxy les données pour un autre système. Par exemple, une application de gestion des commandes destinée aux clients, exécutée sur Heroku, doit récupérer des informations dans Salesforce. Cette configuration peut utiliser un utilisateur de l’intégration unique pour extraire de Salesforce toutes les informations utiles.

However, if the order management application is for the back-office where users log in via Salesforce, the application is a custom user interface that uses OAuth to allow the order management application to make API requests on behalf of the named user. In this case, knowing which named user is making each REST call is important for security and auditing. /Toutefois, si l’application de gestion des commandes est destinée au back-office auquel les utilisateurs se connectent via Salesforce, l’application est une interface utilisateur personnalisée qui utilise OAuth pour autoriser l’application de gestion des commandes à transmettre des requêtes API au nom de l’utilisateur nommé. Dans ce cas, pour la sécurité et l’audit, il est important de connaître l’utilisateur nommé qui transmet chaque appel REST.

With Heroku, it’s easy to deploy either type of application and leverage OAuth and the Salesforce REST APIs. /Heroku facilite le déploiement de l’un ou l’autre type d’application, et l’utilisation de OAuth et des API REST Salesforce.

You can dive right into the Salesforce REST API docs to learn the low-level APIs at your convenience. For a complete quick start that includes deploying to Heroku and a basic app that uses the REST APIs, check out Quick Force Node (JavaScript) or Quick Force Java. /Pour plus d’informations sur les API, consultez les documents Salesforce REST API. Pour suivre un guide de démarrage rapide qui comprend le déploiement vers Heroku et une application de base qui utilise les API REST, consultez Quick Force Node (JavaScript) ou Quick Force Java.

REST API Authentication with OAuth /Authentification API REST avec OAuth

Authentication is a key aspect of using REST APIs, because each request to the APIs must include an authentication token or key. Whether using app-to-app integration or a custom user interface, your application needs a connected app in Salesforce to allow Salesforce to identify which application is making the requests and enable org admins to manage access to the APIs. /L’authentification est un aspect essentiel de l’utilisation des API REST, car chaque requête aux API doit inclure un jeton ou une clé d’authentification. Que vous utilisiez une intégration application-à-application ou une interface utilisateur personnalisée, votre application a besoin dans Salesforce d’une application connectée pour autoriser Salesforce à identifier l’application qui transmet les requêtes et à permettre aux administrateurs des organisations de gérer l’accès aux API.

Single User /Utilisateur unique

With an app-to-app integration, the application needs to know a single integration user’s credentials. Then a REST API can be called to log in with the credentials, which returns the authentication token. /Avec une intégration application-à-application, l’application doit connaître les identifiants d’un seul utilisateur de l’intégration. Ensuite une API REST peut être appelée pour se connecter avec les identifiants, ce qui renvoie le jeton d’authentification.

Named Users /Utilisateurs nommés

When building a custom user interface, the application never receives actual credentials. Instead, the OAuth process provides the application a code to obtain an authorization token. Because the user manually authorizes the application’s access to Salesforce, the flow follows these steps. /Lors de l’élaboration d’une interface utilisateur personnalisée, l’application ne reçoit jamais les identifiants réels. À la place, le processus OAuth fournit à l’application un code pour obtenir un jeton d’autorisation. Puisque l’utilisateur autorise manuellement l’accès de l’application à Salesforce, le flux suit les étapes ci-dessous.

  1. User tries to visit a page that requires authentication. /Un utilisateur tente de visiter une page qui nécessite une authentification.
  2. The application on Heroku redirects the user to the Salesforce OAuth page. /L’application sur Heroku redirige l’utilisateur vers la page Salesforce OAuth.
  3. If the application has not been previously authorized, the user is prompted. /Si l’application n’a pas été autorisée précédemment, l’utilisateur est invité l’autoriser.
Screenshot of the Allow Access Dialog box that will appear asking if Workbench is authorized
  1. When authorized, Salesforce redirects the user back to the application with a code. /Une fois autorisée, Salesforce redirige l’utilisateur vers l’application avec un code.
  2. The application uses the code to retrieve an access token and refresh token. /L’application utilise le code pour récupérer un jeton d’accès et un jeton d’actualisation.
  3. The application uses the access token to make REST API calls to Salesforce. /L’application utilise le jeton d’accès pour transmettre des appels d’API REST à Salesforce.

Typically, the access and refresh tokens are encrypted and stored in some form of session state or database so that the user doesn’t have to continue going through the authorization flow with each request. /Généralement, les jetons d’accès et d’authentification sont cryptés et stockés sous un format d’état de session ou dans une base de données afin d’éviter à l’utilisateur le passer par le flux d’autorisation à chaque requête.

Remember, these tokens are sensitive and must be handled with extreme security diligence! /Notez que ces jetons sont confidentiels et qu’ils doivent être gérés avec la plus grande précaution !

Resources /Ressources

Leave a Reply

Your email address will not be published. Required fields are marked *