API d'enregistrement des appareils
L'API d'enregistrement des appareils fournit des interfaces serveur pour enregistrer les tokens d'appareils et obtenir les registration_id dans AppPush.
Obtenir registration_id à l'aide d'un Token
Cette API permet à un serveur d'inscrire des utilisateurs AppPush à l'aide de FCM Tokens ou d'APNs Device Tokens et d'obtenir le registration_id généré par EngageLab. Une fois obtenu, le registration_id peut être utilisé pour cibler un utilisateur lors d'un push et avec les APIs liées aux appareils, telles que les tags et les alias.
Limites d'utilisation
- Chaque requête permet d'inscrire de 1 à 500 Tokens.
- Une requête ne peut contenir que les Tokens d'une seule plateforme : soit un lot de FCM Tokens, soit un lot d'APNs Device Tokens. Les Tokens FCM et APNs ne peuvent pas être mélangés dans une même requête.
- Les requêtes répétées avec la même application, la même plateforme et le même Token sont idempotentes. Aucun utilisateur en double n'est créé et le
registration_idexistant est renvoyé. - Les résultats sont renvoyés dans le même ordre que les Tokens de la requête.
Endpoint
POST /v4/devices/token/registration_id
L'URL complète de la requête se compose de la Base URL du centre de données de l'application et du chemin ci-dessus. Pour les adresses des centres de données et l'authentification, consultez la Présentation de REST API.
En-têtes de la requête
Content-Type: application/json
Accept: application/json
Authorization: Basic base64_auth_string
Paramètres de la requête
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
platform |
string | Oui | Plateforme à laquelle appartiennent les Tokens. Valeurs possibles : android et ios. Utilisez android pour les FCM Tokens. |
tokens |
array<string> | Oui | Liste des Tokens à inscrire, contenant de 1 à 500 éléments. Tous les Tokens d'une requête doivent appartenir à la plateforme indiquée par platform. |
apns_production |
boolean | Obligatoire pour iOS | Environnement APNs. true désigne l'environnement de production et false l'environnement de développement. Ce champ ne doit pas être inclus dans les requêtes Android. |
Règles de format des Tokens
- FCM Token : doit être une chaîne non vide de 400 caractères maximum. Seuls les caractères ASCII imprimables (
0x21–0x7E) sont autorisés. Les espaces, retours à la ligne et espaces en début ou en fin de chaîne sont interdits. - APNs Device Token : doit être une chaîne hexadécimale non vide, comportant un nombre pair de caractères et ne dépassant pas 400 caractères. Seuls
0-9,a-fetA-Fsont autorisés. Les espaces, chevrons et autres séparateurs sont interdits.
Cette API valide uniquement le format du Token et ne peut pas confirmer si un Token est actuellement valide. Sa validité est déterminée par le résultat réel du push FCM ou APNs.
Exemple de requête Android (FCM)
curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \
-u 'appKey:masterSecret' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"platform": "android",
"tokens": [
"fcm_token_1",
"fcm_token_2"
]
}'
Exemple de requête iOS (APNs)
curl -X POST 'https://pushapi-sgp.engagelab.com/v4/devices/token/registration_id' \
-u 'appKey:masterSecret' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"platform": "ios",
"tokens": [
"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
],
"apns_production": true
}'
Paramètres de réponse
| Nom | Type | Description |
|---|---|---|
results |
array<object> | Résultat de l'inscription de chaque Token, dans le même ordre que tokens dans la requête. |
results[].token |
string | Token de la requête. |
results[].registration_id |
string | Identifiant utilisateur unique EngageLab. Renvoyé lorsque le Token est inscrit avec succès. |
results[].is_new |
boolean | true indique qu'un utilisateur a été créé lors de cette requête ; false indique que le Token était déjà inscrit et que l'utilisateur existant a été renvoyé. |
results[].code |
integer | Code de traitement du Token individuel. 0 indique un succès et toute autre valeur indique un échec. |
results[].message |
string | Description de l'erreur lorsque le traitement d'un Token individuel échoue. Ce champ n'est pas renvoyé en cas de succès. |
Codes de résultat individuels :
| Code | Description |
|---|---|
| 0 | Le Token a été inscrit avec succès. |
| 21003 | Le format du Token n'est pas valide. |
| 27000 | La consultation, l'inscription ou la synchronisation du Token a échoué. |
Exemple de réponse réussie
Lors de la première inscription, is_new vaut true :
{
"results": [
{
"token": "fcm_token_1",
"registration_id": "13065ffa4e1a6cc91c3",
"is_new": true,
"code": 0
},
{
"token": "fcm_token_2",
"registration_id": "13065ffa4e1a6cc91c4",
"is_new": true,
"code": 0
}
]
}
Lorsqu'un Token déjà inscrit est envoyé à nouveau, le même registration_id est renvoyé et is_new vaut false :
{
"results": [
{
"token": "fcm_token_1",
"registration_id": "13065ffa4e1a6cc91c3",
"is_new": false,
"code": 0
}
]
}
Exemple d'échec pour un Token individuel
Si un Token d'un lot présente un format non valide ou si son inscription échoue, cet élément renvoie une erreur dans code et message, tandis que les autres Tokens peuvent être traités normalement. Dans l'exemple suivant, le Token vide échoue à la validation du format :
{
"results": [
{
"token": "fcm_token_1",
"registration_id": "13065ffa4e1a6cc91c3",
"is_new": false,
"code": 0
},
{
"token": "",
"is_new": false,
"code": 21003,
"message": "invalid fcm token format"
}
]
}
Exemple d'échec de la requête
Si les paramètres globaux de la requête ne sont pas valides, l'API renvoie HTTP 400. Par exemple, une requête iOS sans apns_production renvoie :
{
"error": {
"code": 21003,
"message": "apns_production is required for ios"
}
}
Erreurs de requête courantes :
platformn'est niandroidniios;tokensest vide ou contient plus de 500 éléments ;- une requête Android contient
apns_production; - une requête iOS ne contient pas
apns_production.
Réponses de l'API
Codes d'état HTTP
Consultez Code d'état HTTP.
Codes d'erreur
Le tableau suivant présente les codes d'erreur au niveau de la requête. Dans une requête par lot, l'erreur d'un Token individuel est renvoyée dans results[].code et results[].message et n'affecte pas le traitement des autres Tokens.
| Code | Description | Détails | HTTP Status Code |
|---|---|---|---|
| 0 | success | La requête a réussi. Consultez results pour le résultat du traitement de chaque Token. |
200 |
| 21003 | Parameter value is invalid | platform, tokens ou apns_production n'est pas valide. |
400 |
| 21004 | basic auth failed | Le Master Secret est incorrect. | 401 |
| 21008 | app_key is not a 24 size string | La longueur de l'AppKey n'est pas valide. | 400 |
| 23010 | Rate limit exceeded for the API | L'AppKey actuel a dépassé la limite de fréquence de l'API. | 400 |
| 27000 | Server inner err | Erreur interne du serveur. Réessayez plus tard. | 500 |
| 27001 | app_key does not exist or basic info is invalid | Basic Auth n'a pas été fourni, l'AppKey n'existe pas ou les informations d'authentification de l'application ne sont pas valides. | 401 |
| 27002 | parameter is invalid | Le corps de la requête est absent, le format JSON n'est pas valide ou le type d'un paramètre est incorrect. | 400 |










