Authentification OAuth 2.0

📘

OAuth 2.0 est disponible uniquement sur le point de terminaison /ads

Lors de l'intégration des rapports sur les commandes par l'API, vous devez intégrer le point de terminaison /orders à l'aide de l'authentification de base et votre clé API secrÚte.

ID client et clé secrÚte client

L'AD_ID client_id et client_secret seront fournis par votre responsable de compte technique. La clĂ© secrĂšte client est privĂ©e et ne doit pas ĂȘtre partagĂ©e.

Émettre une requĂȘte de jetons d'accĂšs

Pour obtenir un jeton d'accĂšs, vous devez envoyer une requĂȘte contenant les Ă©lĂ©ments client_id et client_secret. Pour ce faire, le dĂ©taillant doit effectuer une requĂȘte POST au point de terminaison du serveur d’autorisation Epsilon Retail Media :

https://$BASE_URL/v1/oauth2/token

📘

/oauth2/token ne fournit que le jeton correspondant. Ces jetons vous permettront d'interagir avec les différents points de terminaison d'intégration.

Votre demande nĂ©cessitera une autorisation de base envoyĂ©e via l'en-tĂȘte de requĂȘte d'autorisation contenant les Ă©lĂ©ments client_id et client_secret du dĂ©taillant, encodĂ©s en Base64 :

Authorization: "Basic" + base64encode(client_id + ":" + client_secret)

Vous devrez ajouter le paramĂštre suivant Ă  l'aide du format application/x-www-form-urlencoded dans le corps de la requĂȘte HTTP :

grant_type=client_credentials

La requĂȘte ressemblera Ă  ceci :

POST https://$BASE_URL/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64 encoded id+key>
grant_type=client_credentials

Recevoir un jeton d'accĂšs

La réponse contiendra les informations suivantes

  • access_token: le jeton d'accĂšs Ă  utiliser lors de l'appel des API Epsilon Retail Media
  • expires_in: le volume, en secondes, avant expiration du jeton d'accĂšs.
  • token_type: le type de jeton renvoyĂ©. Dans ce cas, le type sera toujours Bearer (Porteur).

Voici un exemple de réponse

{
  "access_token": "xxxxx.yyyyy.zzzzz",
  "expires_in": 3600,
  "token_type": "Bearer"
}

Utiliser un jeton

Pour effectuer des appels vers les points de terminaison de l'API Epsilon Retail Media, il suffit d'ajouter le jeton d'accĂšs gĂ©nĂ©rĂ© Ă  l'en-tĂȘte d'autorisation de la requĂȘte
Authorization: “Bearer “ <access_token>

POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Bearer <access_token>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9", 
    "placement": "category",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
         ["category:Cupboard/Snacks"]
    ],
    "options": {
                             "filterMode": "AndOr"
                             },
    "maxNumberOfAds": 3
}

Erreurs liĂ©es Ă  la requĂȘte

Client non valide

Si les Ă©lĂ©ments client_id ou client_secret envoyĂ©s au sein de la requĂȘte sont erronĂ©s, vous recevrez la rĂ©ponse suivante :

{
  "error": "invalid_client"
}

Vérifiez que les identifiants que vous utilisez sont corrects. Vérifiez de nouveau votre client_id et client_secret et assurez-vous d'utiliser correctement l'autorisation de base lorsque vous appelez le point de terminaison /token.
##RequĂȘte non valide
Une erreur de requĂȘte non valide sera renvoyĂ©e par le serveur d'autorisation si un paramĂštre requis est absent de la requĂȘte, ou si cette derniĂšre contient une valeur de paramĂštre non valide, un paramĂštre prĂ©sent plusieurs fois ou un paramĂštre malformĂ©.

{
  "error": "invalid_request"
}

Assurez-vous de :

  • Inclure uniquement grant_type=client_credentials au corps de la requĂȘte
  • DĂ©finir le bon Content-Type pour l'en-tĂȘte de la requĂȘte