Extension Salesforce

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Version: 1.0.5

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

Ce contenu fournit une documentation de référence pour configurer et utiliser cette extension.

Prérequis

Ce contenu fournit une documentation de référence pour configurer et utiliser cette extension. Avant d'utiliser l'extension à partir d'un proxy d'API à l'aide de 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. Vous utiliserez le fichier de certificat (.crt) lorsque vous créerez une application connectée qui donnera à l'extension accès à Salesforce.

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

    Une application connectée Salesforce permet d'accéder à l'extension Salesforce. Pour configurer l'application, consultez les instructions ci-dessous.

  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 Salesforce, dans le panneau de navigation de gauche, accédez à 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), recherchez la clé client et copiez sa valeur dans un endroit sûr pour l'utiliser lors de la configuration de l'extension.

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

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.

Pour configurer une application associé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 la barre 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 destinées à la comptabilité. Elles 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 d'espace 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 Niveaux d'accès OAuth sélectionnés, ajoutez les éléments suivants sous Niveaux d'accès 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'erreurs, vous devrez peut-être générer et importer de nouveau 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 du profil d'application, cochez les cases correspondant aux profils utilisateur pouvant utiliser cette application.

    Veillez à sélectionner un profil correspondant à l'utilisateur dont vous utiliserez le nom d'utilisateur lors de la configuration de l'extension. Assurez-vous également qu'au moins les utilisateurs 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, recherchez l'utilisateur que l'extension représentera, puis recherchez 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 leurs problèmes en améliorant la gestion des informations et des interactions client, le tout sur une seule plate-forme toujours accessible depuis n'importe quel ordinateur ou appareil.

Actions

insert

Insérez les enregistrements en tant que types d'objets.

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ètre 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: 1 000. Tableau Aucune. Oui.
allOrNone true pour que l'intégralité de la mise à jour échoue si une partie de la mise à jour échoue. Booléen faux Non.

Réponse

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 l'objet s généré pour le nouvel enregistrement. Chaîne Aucune. Oui.
results[*].success true si l'insertion de cet enregistrement a réussi. Booléen Aucune. Oui.
results[*].errors Tableau d'erreurs, le cas échéant, détectées lors de l'exécution. Tableau 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ètre Description Type Par défaut Obligatoire
sobject Type d'objet des enregistrements à mettre à jour. Chaîne Aucune. Oui.
records Tableau d'enregistrements sObject au format JSON. Chaque enregistrement à mettre à jour doit inclure la valeur de l'ID de l'enregistrement. Maximum: 1 000. Tableau Aucune. Oui.
allOrNone true pour que l'intégralité de la mise à jour échoue si une partie de la mise à jour échoue. Booléen faux 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ètre Description Type Par défaut Obligatoire
results[*].id ID de l'enregistrement sObject généré pour l'enregistrement mis à jour. Chaîne Aucune. Oui.
results[*].success true si l'insertion de cet enregistrement a réussi. Booléen Aucune. Oui.
results[*].errors Tableau d'erreurs, le cas échéant, détectées lors de l'exécution. Tableau Aucune. Oui.

retrieve

Récupérez les enregistrements en tant que sObjects par leur ID. 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ètre Description Type Par défaut Obligatoire
sobject Type sObject des enregistrements à récupérer. Chaîne Aucune. Oui.
ids Tableau d'enregistrements d'ID sObject à récupérer. Maximum: 1 000. Tableau Aucune. Oui.
allOrNone true pour que l'ensemble de l'opération échoue si une partie de la requête échoue. Booléen faux Non.

Réponse

Tableau records d'objets sObject représentés 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 SOQL (Salesforce Object Query Language).

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ètre Description Type Par défaut Obligatoire
soql Instruction SOQL à utiliser pour la requête. 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ètre 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 d'objets sObject au format JSON. Maximum: 1 000. Tableau Aucune. Oui.
OK true si l'opération de requête est terminée. Booléen Aucune. Oui.

list

Lister les enregistrements Salesforce.com Renvoie tous les champs du type d'objets 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ètre Description Type Par défaut Obligatoire
sobject sObject type (Type d'enregistrement) des enregistrements à lister. Chaîne Aucune. Oui.
limite Nombre maximal d'enregistrements à renvoyer. Entier 1000 Non.
offset Décalage des enregistrements à lister. Entier 0 Non.

Réponse

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

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

sup

Supprimez les enregistrements associés aux 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ètre Description Type Par défaut Obligatoire
sobject Type sObject des enregistrements à supprimer. Chaîne Aucune. Oui.
ids Tableau d'ID sObject pour les enregistrements à supprimer. Maximum: 1 000. Tableau Aucune. Oui.

Réponse

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 ID de l'enregistrement spécifié. Chaîne Aucune. Oui.
results[*].success true si l'opération a réussi pour l'enregistrement. Booléen Aucune. Oui.
results[*].errors Tableau d'erreurs, le cas échéant, détectées lors de l'exécution. Tableau Aucune. Oui.

getAccessToken

Obtenez le jeton d'accès à l'API Salesforce.com. Peut être utilisé pour interroger des API REST.

Syntaxe

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

Paramètres de requête

Aucune.

Réponse

Le 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 Le jeton d'accès. Chaîne Aucune. Oui.
champ d'application Champs d'application pour lesquels le jeton permet d'accéder. 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 Type du jeton d'accès. Chaîne Réseau Oui.

Documentation de référence sur la configuration

Utilisez les éléments suivants 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 pour obtenir l'autorisation de Salesforce. Il s'agit généralement de 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. Pour récupérer votre clé consommateur, consultez les instructions sous Conditions préalables. Aucune. Oui.
Identifiant Lorsque vous le saisissez dans la console Apigee Edge, il s'agit du contenu du fichier salesforce.key que vous avez généré lors des étapes précédentes. Lorsqu'il est envoyé 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 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.