Définir les identifiants de canal
Un identifiant de canal est la valeur d’identification d’un canal de contact et peut servir de cible de ce canal. La définition et le détachement s’exécutent à partir de l’EUID et de l’ID de canal.
L’adresse complète est la Base URL du centre de données plus le chemin d’API ci-dessous. Consultez la Présentation de l’API REST pour obtenir la Base URL, l’API Key et l’API Secret.
Vérification de l'invocation
L'API REST EngageLab utilise l'authentification HTTP Basic comme méthode de vérification. Ajoutez Authorization dans l'en-tête HTTP :
Authorization: Basic ${base64_auth_string}
Le base64_auth_string est généré selon l'algorithme suivant : base64(api_key:api_secret).
- Le nom de l'en-tête est "Authorization" et la valeur est la paire "nom d'utilisateur:mot de passe" encodée en base64 (séparée par deux-points).
- Pour l'API MA, le nom d'utilisateur correspond à l'APIKey et le mot de passe correspond à l'APISecret. Veuillez configurer une source de données de type API pour obtenir l'APIKey et l'APISecret.
Définir les identifiants de canal
Adresse d'invocation
POST /v1/user/channel
Exemple de requête
En-tête de la requête
> POST /v1/user/channel
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Corps de la requête
{
"euid": 10362473,
"channel_id": 8801,
"ma_rid": "1a0018970d1c9f8f8e2",
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
Paramètres de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
euid |
Long | Oui | Identifiant unique de l’utilisateur. L’utilisateur doit déjà exister dans le projet actuel. |
channel_id |
Long | Oui | Identifiant du canal de contact. Le canal doit déjà exister dans le projet actuel. |
ma_rid |
String | Non | MA Registration ID. S’il est fourni, les identifiants de canal écrits par cette requête sont liés à ce MA RID et la plateforme est enregistrée. Lorsque ce MA RID est transféré vers un autre EUID, les identifiants de canal qui lui sont liés sont transférés avec lui. S’il est omis, s’il s’agit d’une chaîne vide ou uniquement d’espaces, cette écriture ne crée pas de lien ; un lien déjà présent pour les identifiants écrits par cette requête est effacé. Si la plateforme ne peut pas être lue dans la valeur, la définition échoue. |
value |
Array<String> | Oui | Liste des identifiants de canal à définir. La liste ne peut pas être vide, et aucun élément ne peut être vide ou composé uniquement d’espaces. Les valeurs sont enregistrées telles quelles : la comparaison distingue les majuscules et les minuscules, et les espaces en début ou en fin ne sont pas retirés. Les valeurs en double dans une même requête sont dédupliquées. |
Pour le même couple euid + channel_id, le même identifiant est réécrit à partir de cette requête : l’ancien enregistrement est supprimé et un nouvel enregistrement est écrit, avec l’horodatage de mise à jour réglé sur l’heure actuelle. Les identifiants déjà enregistrés qui sont absents de cette liste restent inchangés. Une nouvelle valeur est ajoutée.
Pour les canaux AppPush/WebPush, le même identifiant sous le même channel_id ne peut appartenir qu’à un seul EUID. Une fois la valeur écrite sur le nouvel EUID, le système la retire de chaque autre EUID qui la possède encore. Les autres types de canal n’utilisent pas ce réattachement d’unicité.
Paramètres de retour
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
code |
Int | Oui | Indique si l’appel a réussi. 0 signifie un succès. |
message |
String | Oui | Description du résultat de l’appel. |
Exemple de succès
{
"code": 0,
"message": "success"
}
Détacher les identifiants de canal
Adresse d'invocation
POST /v1/user/channel/unbind
Exemple de requête
En-tête de la requête
> POST /v1/user/channel/unbind
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Corps de la requête
{
"euid": 10362473,
"channel_id": 8801,
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
Paramètres de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
euid |
Long | Oui | Identifiant unique de l’utilisateur. |
channel_id |
Long | Oui | Identifiant du canal de contact. |
value |
Array<String> | Oui | Liste des identifiants de canal à détacher. Chaque valeur doit correspondre exactement à un identifiant enregistré. La comparaison distingue les majuscules et les minuscules, et les espaces en début ou en fin ne sont pas retirés. |
Le détachement compare les identifiants de canal, pas ma_rid. La requête de détachement n’a pas de champ ma_rid. L’API retire les enregistrements qui correspondent exactement à euid + channel_id + value. Si l’utilisateur n’existe pas, ou s’il n’a pas d’identifiant exactement identique, aucune donnée n’est modifiée et l’API renvoie tout de même un succès. Le détachement ne vérifie pas si channel_id appartient au projet actuel.
Paramètres de retour
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
code |
Int | Oui | Indique si l’appel a réussi. 0 signifie un succès. |
message |
String | Oui | Description du résultat de l’appel. |
Exemple de succès
{
"code": 0,
"message": "success"
}
Codes d'erreur
Lorsque la validation métier échoue, l’API de définition renvoie les codes suivants avec le statut HTTP 400. Le champ message du corps de la réponse est l’explication en anglais, et non la description du tableau ci-dessous. L’API de détachement ne renvoie 55004 que lorsqu’un champ obligatoire est invalide ou que le corps de la requête ne peut pas être analysé. Si l’utilisateur ou l’identifiant n’existe pas, le détachement renvoie tout de même un succès.
| Code | Description | Détail |
|---|---|---|
| 55004 | Paramètre métier invalide | Lors de la définition, si channel_id n’existe pas dans le projet actuel, message vaut channel_id does not exist in current project: {channel_id}. Lors de la définition, si la plateforme ne peut pas être lue dans ma_rid, message vaut ma_rid is invalid. Lors de la définition et du détachement, un champ obligatoire manquant, un value vide, un élément vide ou un corps de requête illisible (message vaut alors Invalid request payload format) renvoient aussi ce code. |
| 55108 | EUID invalide | Renvoyé uniquement par l’API de définition. L’EUID n’existe pas dans le projet actuel. message vaut EUID does not exist: {euid}. |
Exemples d’échec
channel_id n’existe pas :
{
"code": 55004,
"message": "channel_id does not exist in current project: 8801"
}
ma_rid ne peut pas être analysé :
{
"code": 55004,
"message": "ma_rid is invalid"
}
L’EUID n’existe pas :
{
"code": 55108,
"message": "EUID does not exist: 10362473"
}










