La implementación del servidor es opcional. Usa el servicio de ID de instancia si deseas realizar estas operaciones:
- Obtén información sobre las instancias de app. Verifica los tokens de la aplicación, o bien obtén más información sobre la instancia de aplicación que creó el token.
- Crea mapas de relación para las instancias de la app. Crea relaciones entre las instancias de apps y las entidades.
- Crea tokens de registro para tokens de APNS. Esta API te permite importar de forma masiva los tokens de APNS existentes y asignarlos a tokens de registro válidos para FCM.
Obtén información sobre las instancias de la app
Para obtener información sobre una instancia de app, llama al servicio de ID de instancia en este extremo y proporciona el token de la instancia de app como se muestra a continuación:
https://iid.googleapis.com/iid/info/IID_TOKEN
Parámetros
Authorization: Bearer <access_token>
. Establece este parámetro en el encabezado. Agrega un token de OAuth2 de corta duración como valor del encabezadoAuthorization
. Para obtener más información sobre cómo obtener este token, consulta Proporciona las credenciales de forma manual.access_token_auth: true
. Establece este parámetro en el encabezado.- [opcional] booleano
details
: establece este parámetro de consulta entrue
para obtener la información de suscripción del tema de FCM (si existe) asociada con este token. Si no se especifica, el valor predeterminado esfalse
.
Resultados
Si la llamada se realiza correctamente, se muestra el estado HTTP 200 y un objeto JSON que contiene lo siguiente:
application
: Es el nombre del paquete asociado con el token.authorizedEntity
: projectId autorizado para enviar al token.applicationVersion
: Es la versión de la aplicación.appSigner
: Es la huella digitalsha1
para la firma aplicada al paquete. Indica qué parte firmó la app; por ejemplo,Play Store
.platform
: MuestraANDROID
,IOS
oCHROME
para indicar la plataforma del dispositivo al que pertenece el token.
Si la marca details
está configurada:
rel
: Las relaciones asociadas con el token. Por ejemplo, una lista de suscripciones a temas.
Solicitud de GET
de ejemplo
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Resultado de ejemplo
HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"appSigner":"1a2bc3d4e5"
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
Crea mapas de relación para las instancias de la app
La API de Instance ID te permite crear mapas de relación para instancias de apps. Por ejemplo, puedes asignar un token de registro a un tema de FCM y suscribir la instancia de la app al tema. La API proporciona métodos para crear estas relaciones de forma individual y masiva.
Crea una asignación de relación para una instancia de app
Si tienes un token de registro y una relación admitida, puedes crear una asignación. Por ejemplo, puedes suscribir una instancia de app a un tema de FCM llamando al servicio de ID de instancia en este extremo y proporcionar el token de la instancia de la app como se muestra a continuación:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Parámetros
Authorization: Bearer <access_token>
. Establece este parámetro en el encabezado. Agrega un token de OAuth2 de corta duración como valor del encabezadoAuthorization
. Para obtener más información sobre cómo obtener este token, consulta Proporciona las credenciales de forma manual.access_token_auth: true
. Establece este parámetro en el encabezado.
Resultados
Si se realiza de forma correcta, la llamada muestra el estado HTTP 200.
Solicitud de POST
de ejemplo
https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Resultado de ejemplo
HTTP 200 OK
{}
Administra mapas de relaciones para varias instancias de app
Con los métodos por lotes del servicio de ID de instancia, puedes realizar la administración por lotes de instancias de la app. Por ejemplo, puedes agregar o quitar instancias de la app en un tema de FCM de forma masiva. Para actualizar hasta 1, 000 instancias de apps por llamada a la API, llama al servicio de ID de instancia en este extremo y proporciona los tokens de instancia de la app en el cuerpo JSON:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Parámetros
Authorization: Bearer <access_token>
. Establece este parámetro en el encabezado. Agrega un token de OAuth2 de corta duración como valor del encabezadoAuthorization
. Para obtener más información sobre cómo obtener este token, consulta Proporciona las credenciales de forma manual.access_token_auth: true
. Establece este parámetro en el encabezado.to
: Es el nombre del tema.registration_tokens
: Es el array de tokens de IID para las instancias de la app que deseas agregar o quitar.
Resultados
Si se realiza de forma correcta, la llamada muestra el estado HTTP 200. Los resultados vacíos indican que la suscripción del token se realizó correctamente. Para las suscripciones fallidas, el resultado contiene uno de estos códigos de error:
- NOT_FOUND: Se borró el token de registro o se desinstaló la aplicación.
- INVALID_ARGUMENT: El token de registro proporcionado no es válido para el ID de remitente.
- INTERNAL: El servidor de backend falló por motivos desconocidos. Reintenta la solicitud.
- TOO_MANY_TOPICS: Cantidad excesiva de temas por instancia de app.
- RESOURCE_EXHAUSTED: demasiadas solicitudes de suscripción o anulación de suscripción en un período breve. Vuelve a intentarlo con una retirada exponencial.
Solicitud de POST
de ejemplo
https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
{
"to": "/topics/movies",
"registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}
Resultado de ejemplo
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
Crea tokens de registro para tokens de APNS
Con el método batchImport
del servicio de ID de instancia, puedes importar de forma masiva
tokens de APNS de iOS existentes a Firebase Cloud Messaging y asignarlos
a tokens de registro válidos. Llama al servicio de ID de instancia en este extremo y proporciona una lista de tokens de APNS en el cuerpo JSON:
https://iid.googleapis.com/iid/v1:batchImport
El cuerpo de la respuesta contiene un array de tokens de registro de Instance ID listos para usarse en el envío de mensajes de FCM al token de dispositivo de APNS correspondiente.
Parámetros
Authorization: Bearer <access_token>
. Establece este parámetro en el encabezado. Agrega un token de OAuth2 de corta duración como valor del encabezadoAuthorization
. Para obtener más información sobre cómo obtener este token, consulta Proporciona las credenciales de forma manual.access_token_auth: true
. Establece este parámetro en el encabezado.application
: Es el ID del paquete de la app.sandbox
: Es un valor booleano que indica el entorno de la zona de pruebas (VERDADERO) o la producción (FALSO).apns_tokens
: Es el array de tokens de APNS para las instancias de la app que quieres agregar o quitar. Máximo de 100 tokens por solicitud.
Resultados
Si se ejecuta de forma correcta, la llamada muestra el estado HTTP 200 y un cuerpo de resultado JSON. Para cada token de APNS proporcionado en la solicitud, la lista de resultados incluye lo siguiente:
- El token de APNS.
- Estado. Está bien, o bien un mensaje de error que describe el error.
- Para obtener resultados exitosos, el token de registro que FCM asigna al token de APNS.
Solicitud de POST
de ejemplo
https://iid.googleapis.com/iid/v1:batchImport
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth:true
{
"application": "com.google.FCMTestApp",
"sandbox":false,
"apns_tokens":[
"368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
]
}
Resultado de ejemplo
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
Respuestas de error
Las llamadas a la API de servidor Instance ID muestran los siguientes códigos de error HTTP:
HTTP status 400 (Bad request)
: Los parámetros de la solicitud no se especificaron o no son válidos. Revisa los mensajes de error para obtener información detallada.HTTP status 401 (Unauthorized)
: El encabezado de autorización no es válido.HTTP status 403 (Forbidden)
: El encabezado de autorización no coincide conauthorizedEntity
.HTTP status 404 (Not found)
: No se encontró una ruta de acceso HTTP o un token de IID no válido. Revisa los mensajes de error para obtener información detallada.HTTP status 503 (Service unavailable)
: El servicio no está disponible. Vuelve a intentar la solicitud con retirada exponencial.