Iubenda logo
Générer dès maintenant

Documentation

Sommaire

Comment appeler les méthodes de l’API Privacy Controls and Cookie Solution depuis une iframe

Si vous intégrez Privacy Controls and Cookie Solution via une iframe, vous pouvez appeler toutes les méthodes de _iub.cs.api via postMessage. Voici quelques exemples qui illustrent la façon de réaliser ces appels.

Format postMessage

L’API doit recevoir un appel postMessage au format JSON suivant :

{ 
    __iubCsCall: { 
        command: <api-function-name>, 
        parameters: [...], 
        callId: <a-string-or-integer> 
   } 
}

dans lequel :

  • command (chaîne de caractères) est le nom de la fonction de l’API que vous souhaitez appeler,
  • parameters (tableau) est la liste de paramètres que vous envoyez à la fonction de l’API, et
  • callId (chaîne de caractères ou nombre entier) est l’identifiant utilisé pour vérifier à quel appel correspond la sortie de l’API.

Exemples

En imaginant que l’iframe cible est hébergée sur https://example.com, nous pouvons envoyer l’appel suivant à l’API :

ifr.postMessage(
    JSON.stringify({
        __iubCsCall: {
            command: 'isConsentGiven',
            parameters: [],
            callId: 1
        }
    }),
    'https://example.com'
);

Nous appellerons ainsi la fonction isConsentGiven() de l’API Privacy Controls and Cookie Solution sans lui affecter de paramètres. La sortie de l’API sera retournée via postMessage sous la forme d’une chaîne de caractères JSON.

Pour permettre à l’événement message de capturer cette sortie, vous aurez besoin d’un écouteur. En fonction de l’état actuel de Privacy Controls and Cookie Solution, cet écouteur pourra ressembler à l’exemple suivant :

{
    "__iubCsReturn": {
        "returnValue": false,
        "success": true,
        "callId": 1
    }
}

Exemple avec paramètres

Voici comment ajouter des paramètres à votre appel postMessage :

ifr.postMessage(
    JSON.stringify({
        __iubCsCall: {
            command: 'storeConsent',
            parameters: [{
                consent: false
            }],
            callId: 2
        }
    }),
    'http://localhost:3012'
);

Cet appel à la fonction storeConsent() affectera à consent la valeur false et déposera un cookie de consentement.

Rafraîchissez la page pour constater les effets de cet appel. Vous pourrez ensuite vérifier que consent a pour valeur false en évaluant _iub.cs.consent.consent dans la console (la sortie devrait être false).

La sortie JSON de postMessage devrait ressembler à l’exemple suivant :

{
    "__iubCsReturn": {
        "success": true,
        "callId": 2
    }
}

Exemple d’appel postMessage mal formé

Voici la sortie d’un appel postMessage mal formé (p.ex. une fonction de l’API qui n’existe pas) :

ifr.postMessage(
    JSON.stringify({
        __iubCsCall: {
            command: 'Consent',
            parameters: [{
                consent: false
            }],
            callId: 1
        }
    }),
    'http://localhost:3012'
);

Étant donné qu’aucune fonction de l’API de Privacy Controls and Cookie Solution ne s’appelle Consent, l’erreur suivante se déclenchera :

{
    "__iubCsReturn": {
        "returnValue": null,
        "success": false,
        "callId": 1
    }
}

Voir aussi