API de registro de dispositivos
La API de registro de dispositivos proporciona interfaces de servidor para registrar tokens de dispositivos y obtener registration_id en AppPush.
Obtener registration_id mediante un Token
Esta API permite que un servidor registre usuarios de AppPush mediante FCM Tokens o APNs Device Tokens y obtenga el registration_id generado por EngageLab. Después de obtenerlo, puede utilizar el registration_id para enviar notificaciones a usuarios específicos y para APIs relacionadas con dispositivos, como etiquetas y alias.
Límites de uso
- Cada solicitud permite registrar entre 1 y 500 Tokens.
- Una solicitud solo puede contener Tokens de una plataforma: un lote de FCM Tokens o un lote de APNs Device Tokens. No se pueden mezclar Tokens de FCM y APNs en la misma solicitud.
- Las solicitudes repetidas con la misma aplicación, plataforma y Token son idempotentes. No se crea un usuario duplicado y se devuelve el
registration_idexistente. - Los resultados se devuelven en el mismo orden que los Tokens de la solicitud.
Endpoint
POST /v4/devices/token/registration_id
La URL completa se compone de la Base URL del centro de datos de la aplicación y de la ruta anterior. Consulte Descripción general de REST API para conocer las direcciones de los centros de datos y el método de autenticación.
Encabezados de la solicitud
Content-Type: application/json
Accept: application/json
Authorization: Basic base64_auth_string
Parámetros de la solicitud
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
platform |
string | Sí | Plataforma a la que pertenecen los Tokens. Valores admitidos: android e ios. Utilice android para FCM Tokens. |
tokens |
array<string> | Sí | Lista de Tokens que se registrarán, con entre 1 y 500 elementos. Todos los Tokens de una solicitud deben pertenecer a la plataforma indicada por platform. |
apns_production |
boolean | Obligatorio para iOS | Entorno APNs. true indica producción y false indica desarrollo. Las solicitudes de Android no deben incluir este campo. |
Reglas de formato de los Tokens
- FCM Token: Debe ser una cadena no vacía de 400 caracteres como máximo. Solo se permiten caracteres ASCII imprimibles (
0x21–0x7E). No se permiten espacios, saltos de línea ni espacios en blanco iniciales o finales. - APNs Device Token: Debe ser una cadena hexadecimal no vacía, con un número par de caracteres y una longitud máxima de 400 caracteres. Solo se permiten
0-9,a-fyA-F. No se permiten espacios, corchetes angulares ni otros separadores.
Esta API solo valida el formato del Token y no puede confirmar si el Token es válido actualmente. La validez se determina mediante el resultado real del envío de FCM o APNs.
Ejemplo de solicitud 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"
]
}'
Ejemplo de solicitud 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
}'
Parámetros de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
results |
array<object> | Resultado del registro de cada Token, en el mismo orden que tokens en la solicitud. |
results[].token |
string | Token de la solicitud. |
results[].registration_id |
string | Identificador único de usuario de EngageLab. Se devuelve cuando el Token se registra correctamente. |
results[].is_new |
boolean | true indica que se creó un usuario en esta solicitud; false indica que el Token ya estaba registrado y se devolvió el usuario existente. |
results[].code |
integer | Código de procesamiento del Token individual. 0 indica éxito y un valor distinto de 0 indica un error. |
results[].message |
string | Descripción del error cuando falla el procesamiento de un Token individual. No se devuelve si la operación es correcta. |
Códigos de resultado individuales:
| Code | Descripción |
|---|---|
| 0 | El Token se registró correctamente. |
| 21003 | El formato del Token no es válido. |
| 27000 | Error al consultar, registrar o sincronizar el Token. |
Ejemplo de respuesta correcta
En el primer registro, is_new es 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
}
]
}
Si se vuelve a enviar un Token ya registrado, se devuelve el mismo registration_id y is_new es false:
{
"results": [
{
"token": "fcm_token_1",
"registration_id": "13065ffa4e1a6cc91c3",
"is_new": false,
"code": 0
}
]
}
Ejemplo de error de un Token individual
Si un Token de un lote tiene un formato no válido o no se puede registrar, ese elemento devuelve un error mediante code y message, mientras que los demás Tokens pueden procesarse normalmente. En el siguiente ejemplo, el Token vacío no supera la validación de formato:
{
"results": [
{
"token": "fcm_token_1",
"registration_id": "13065ffa4e1a6cc91c3",
"is_new": false,
"code": 0
},
{
"token": "",
"is_new": false,
"code": 21003,
"message": "invalid fcm token format"
}
]
}
Ejemplo de solicitud fallida
Si los parámetros generales de la solicitud no son válidos, la API devuelve HTTP 400. Por ejemplo, una solicitud de iOS sin apns_production devuelve:
{
"error": {
"code": 21003,
"message": "apns_production is required for ios"
}
}
Errores frecuentes de solicitud:
platformno esandroidniios;tokensestá vacío o contiene más de 500 elementos;- una solicitud de Android incluye
apns_production; - una solicitud de iOS no incluye
apns_production.
Respuestas de la API
Códigos de estado HTTP
Consulte Código de estado HTTP.
Códigos de error
La siguiente tabla muestra los códigos de error a nivel de solicitud. En una solicitud por lotes, el error de un Token individual se devuelve mediante results[].code y results[].message y no afecta al procesamiento de los demás Tokens.
| Code | Descripción | Detalles | HTTP Status Code |
|---|---|---|---|
| 0 | success | La solicitud se procesó correctamente. Consulte results para conocer el resultado de cada Token. |
200 |
| 21003 | Parameter value is invalid | platform, tokens o apns_production no es válido. |
400 |
| 21004 | basic auth failed | El Master Secret es incorrecto. | 401 |
| 21008 | app_key is not a 24 size string | La longitud del AppKey no es válida. | 400 |
| 23010 | Rate limit exceeded for the API | El AppKey actual ha superado el límite de frecuencia de la API. | 400 |
| 27000 | Server inner err | Error interno del servidor. Inténtelo de nuevo más tarde. | 500 |
| 27001 | app_key does not exist or basic info is invalid | No se proporcionó Basic Auth, el AppKey no existe o la información de autenticación de la aplicación no es válida. | 401 |
| 27002 | parameter is invalid | Falta el cuerpo de la solicitud, el formato JSON no es válido o un parámetro tiene un tipo incorrecto. | 400 |










