Extension Salesforce

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Version: 1.0.3

Accédez aux données de votre compte Salesforce. Insérez, mettez à jour, récupérez et interrogez des données.

Ce contenu fournit une documentation de référence sur la configuration et l'utilisation de cette extension.

Conditions préalables

Ce contenu fournit une documentation de référence sur la configuration et l'utilisation de cette extension. Avant d'utiliser l'extension à partir d'un proxy d'API avec la règle ExtensionCallout, vous devez:

  1. Créez une paire clé privée/certificat RSA x509.

    Vous utiliserez la clé privée (.key) comme identifiant lors de la configuration de l'extension. Lors de la création d'une application connectée, vous utiliserez le fichier de certificat (.crt) pour autoriser l'extension à accéder à Salesforce.

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. Configurer une application connectée

    Une application connectée à Salesforce donnera accès à l'extension Salesforce. Consultez les instructions ci-dessous pour configurer l'application.

  3. Obtenez la clé client de l'application connectée. L'extension l'utilisera lors de l'authentification auprès de l'application.

    1. Dans la configuration de Salesforce, dans le panneau de navigation de gauche, accédez à Apps > App Manager (Applications > Gestionnaire d'applications).
    2. Dans la liste, recherchez l'application connectée que vous avez créée.
    3. Dans le menu déroulant situé à droite de la ligne de l'application, cliquez sur Afficher.
    4. Sous API (Activer les paramètres OAuth), localisez la clé client et copiez sa valeur en lieu sûr, que vous pourrez utiliser lors de la configuration de l'extension.

Configurer une application connectée pour que l'extension y accède

Avant que l'extension Salesforce puisse accéder à Salesforce, vous devez créer une application connectée à Salesforce via laquelle l'extension peut se connecter à Salesforce.

Dans Salesforce, une application connectée permet aux applications externes de se connecter à Salesforce via des API.

Configurer une application connectée

  1. Connectez-vous à Salesforce.
  2. Cliquez sur l'icône en forme de roue dentée en haut à droite, puis sur Configuration.
  3. Dans le panneau de navigation de gauche, développez Applications > Gestionnaire d'applications.
  4. Sur la page Gestionnaire d'applications, cliquez sur Nouvelle application connectée.
  5. Sous Informations de base, renseignez les champs obligatoires. Les valeurs sont comptables et ne sont pas utilisées par l'extension.
  6. Sous (API (Activer les paramètres OAuth), cochez la case Activer les paramètres OAuth.
  7. Bien qu'elle ne soit pas utilisée par l'extension, saisissez une URL de rappel. Vous pouvez utiliser http://localhost/ ou un autre hôte réservé.
  8. Cochez la case Utiliser des signatures numériques.
  9. Sous Utiliser des signatures numériques, cliquez sur Sélectionner un fichier pour rechercher et importer le fichier salesforce.crt que vous avez généré précédemment.
  10. Dans la section Champs d'application OAuth sélectionnés, ajoutez les éléments suivants sous Champs d'application OAuth sélectionnés :
    • Accéder à vos données et les gérer – API
    • Effectuer des requêtes en votre nom à tout moment – refresh_token, offline_access
  11. Cliquez sur Enregistrer. En cas d'erreur, vous devrez peut-être regénérer et importer le fichier salesforce.crt.
  12. Sur la page de l'application qui s'affiche, cliquez sur Gérer.
  13. Sur la page Gestionnaire d'applications de l'application que vous venez de créer, cliquez sur Modifier les règles.
  14. Sous Règles OAuth, cliquez sur le menu déroulant Utilisateurs autorisés, puis sur Les utilisateurs approuvés par l'administrateur sont pré-autorisés.
  15. Cliquez sur Enregistrer.
  16. De retour sur la page de l'application, sous Profils, cliquez sur Gérer les profils.
  17. Sur la page Attribution de profils d'application, cochez les cases correspondant aux profils utilisateur pouvant utiliser cette application.

    Veillez à sélectionner le profil correspondant à l'utilisateur dont vous utiliserez le nom d'utilisateur lors de la configuration de l'extension. Assurez-vous également qu'au moins des utilisateurs disposant d'un administrateur système ont accès à cette application.

    Vous pouvez afficher le paramètre de profil de l'utilisateur dans Salesforce. Dans la zone Configuration, développez Utilisateurs > Utilisateurs, localisez l'utilisateur que l'extension représentera, puis son profil dans la colonne Profil.

  18. Cliquez sur Enregistrer.

À propos de Salesforce

Salesforce est une plate-forme de gestion de la relation client (CRM, customer relationship management). La gestion de la relation client aide les entreprises à comprendre les besoins de leurs clients et à résoudre les problèmes en gérant mieux les informations et les interactions des clients, le tout sur une plate-forme unique, toujours accessible depuis n'importe quel ordinateur ou appareil.

Actions

insert

Insérez des enregistrements en tant que types sObject.

Syntaxe

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records":[ records-to-insert ],
  "allOrNone": true | false
}]]></Input>

Exemple

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { "Name": "MyAccountName" }
  ],
  "allOrNone": true
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
Sobject Type sObject des enregistrements à insérer. Chaîne Aucune Oui.
records Tableau d'enregistrements sObject au format JSON. Maximum: 1000. Array Aucune Oui.
allOrNone true fait échouer la mise à jour complète en cas d'échec d'une partie de celle-ci. Booléen false Non.

Réponse

Un tableau results contenant les résultats de l'opération d'insertion.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Propriété Description Type Par défaut Obligatoire
results[*].id ID de sObject généré pour le nouvel enregistrement. Chaîne Aucune Oui.
résultats[*].success true si cet enregistrement a bien été inséré. Booléen Aucune Oui.
résultats[*].erreurs Tableau des erreurs, le cas échéant, interceptées pendant l'exécution. Array Aucune Oui.

update

Mettez à jour les enregistrements Salesforce.

Syntaxe

<Action>update</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records": [ records-to-update ],
  "allOrNone": true | false
}]]></Input>

Exemple

<Action>update</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { 
      "id":"0011U00000LQ76KQAT",
      "Name": "MyNewAccountName" 
    }
  ],
  "allOrNone": true
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
Sobject Type sObject des enregistrements à mettre à jour. Chaîne Aucune Oui.
records Tableau d'enregistrements sObject au format JSON. Chaque enregistrement à mettre à jour doit inclure l'identifiant de l'enregistrement. Maximum: 1000. Array Aucune Oui.
allOrNone true fait échouer la mise à jour complète en cas d'échec d'une partie de celle-ci. Booléen false Non.

Réponse

Tableau results contenant les résultats de la mise à jour.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Paramètres Description Type Par défaut Obligatoire
results[*].id ID de l'objet sObject généré pour l'enregistrement mis à jour. Chaîne Aucune Oui.
résultats[*].success true si cet enregistrement a bien été inséré. Booléen Aucune Oui.
résultats[*].erreurs Tableau des erreurs, le cas échéant, interceptées pendant l'exécution. Array Aucune Oui.

retrieve

Récupère les enregistrements en tant qu'objets sObject à l'aide de leur identifiant. Renvoie tous les champs du type sObject.

Syntaxe

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Exemple

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
Sobject Type sObject des enregistrements à récupérer. Chaîne Aucune Oui.
ids Tableau d'ID sObject à récupérer. Maximum: 1000. Array Aucune Oui.
allOrNone true fait échouer l'opération dans son intégralité si une partie de la requête échoue. Booléen false Non.

Réponse

Tableau records d'objets sObject représenté au format JSON. Notez que toutes les propriétés des objets sont incluses dans le fichier JSON, même si la valeur de la propriété est nulle.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

querySOQL

Interrogez Salesforce.com à l'aide du langage de requête d'objet Salesforce (SOQL).

Syntaxe

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": soql-query-statement
}]]></Input>

Exemple

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": "SELECT Id, Name FROM Account"
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
SoqL Instruction SOQL à utiliser pour l'interrogation. Chaîne Aucune Oui.

Réponse

Résultats de la requête.

{
  totalSize: 2,
  records: [
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76KQAT',
      Name: 'AccountName1'
    },
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76LQAT',
      Name: 'AccountName2'
    }
  ],
  done: true
}
Paramètres Description Type Par défaut Obligatoire
totalSize Nombre d'enregistrements renvoyés par la requête. Entier Aucune Oui.
records Tableau d'enregistrements renvoyés sous forme de sObjects au format JSON. Maximum: 1000. Array Aucune Oui.
OK true si l'opération de requête est terminée Booléen Aucune Oui.

list

Répertorier les enregistrements Salesforce.com Renvoie tous les champs du type sObject spécifié.

Syntaxe

<Action>list</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "limit": max-number-of-records,
  "offset": record-index-at-which-to-begin-response-set
}]]></Input>

Exemple

<Action>list</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "limit": 1000,
  "offset": 0
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
Sobject Type sObject des enregistrements à répertorier. Chaîne Aucune Oui.
limite Nombre maximal d'enregistrements à renvoyer. Entier 1 000 Non.
offset Décalage pour les enregistrements à répertorier. Entier 0 Non.

Réponse

Tableau records contenant les sObjects listés au format JSON.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

sup

Supprimer les enregistrements avec les ID spécifiés.

Syntaxe

<Action>del</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Exemple

<Action>del</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
Sobject Type sObject des enregistrements à supprimer. Chaîne Aucune Oui.
ids Tableau des ID sObject des enregistrements à supprimer. Maximum: 1000. Array Aucune Oui.

Réponse

Un tableau results contenant les résultats de l'opération.

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Propriété Description Type Par défaut Obligatoire
results[*].id sObject de l'enregistrement spécifié. Chaîne Aucune Oui.
résultats[*].success true si l'opération a réussi pour l'enregistrement. Booléen Aucune Oui.
résultats[*].erreurs Tableau des erreurs, le cas échéant, interceptées pendant l'exécution. Array Aucune Oui.

getAccessToken

Permet d'obtenir le jeton d'accès à l'API Salesforce.com. Permet d'interroger les API REST.

Syntaxe

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

Paramètres de requête

Aucune

Réponse

Jeton d'accès au format JSON.

{
  "accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
  "scope":"api",
  "instanceUrl": "https://na85.salesforce.com",
  "id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
  "tokenType": "Bearer"
}
Propriété Description Type Par défaut Obligatoire
accessToken Jeton d'accès. Chaîne Aucune Oui.
champ d'application Champs d'application au sein desquels le jeton fournit l'accès. Chaîne Aucune Oui.
instanceUrl URL de l'instance utilisée par l'organisation Salesforce. Chaîne Aucune Oui.
id ID de l'application associée. Chaîne Aucune Oui.
tokenType Saisissez le jeton d'accès. Chaîne Support Oui.

Documentation de référence sur la configuration

Utilisez le code suivant lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API.

Propriétés d'extension courantes

Les propriétés suivantes sont présentes pour chaque extension.

Propriété Description Par défaut Obligatoire
name Nom que vous attribuez à cette configuration de l'extension. Aucune Oui
packageName Nom du package d'extension tel qu'indiqué par Apigee Edge. Aucune Oui
version Numéro de version du package d'extension à partir duquel vous configurez une extension. Aucune Oui
configuration Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. Aucune Oui

Propriétés de ce package d'extension

Spécifiez les valeurs des propriétés de configuration suivantes spécifiques à cette extension.

Propriété Description Par défaut Obligatoire
URL du serveur d'autorisation URL à utiliser lors de l'obtention de l'autorisation auprès de Salesforce. Généralement https://login.salesforce.com Aucune Oui.
Clé client de l'application connectée Clé client fournie par Salesforce pour l'application connectée que vous avez créée. Consultez les instructions de la section Conditions préalables pour récupérer votre clé client. Aucune Oui.
Identifiant Lorsqu'il est saisi dans la console Apigee Edge, il s'agit du contenu du fichier salesforce.key que vous avez généré lors des étapes ci-dessus. Lorsqu'elle est envoyée via l'API de gestion, il s'agit d'une valeur encodée en base64 générée à partir du fichier salesforce.key. Aucune Oui.
Nom d'utilisateur de l'utilisateur Salesforce Le nom d'utilisateur associé à l'application connectée que vous avez créée. L'extension Salesforce l'utilisera pour obtenir l'autorisation de Salesforce. Aucune Oui.