La implementación del servidor es opcional. Si lo deseas, usa el servicio Instance ID para realizar estas operaciones:
- Obtén información sobre las instancias de app. Verifica los tokens de app u obtén más información sobre la instancia de app que creó el token.
- Crea asignaciones de relaciones para instancias de app. Crear relaciones entre instancias y entidades de la app
- Crea tokens de registro para tokens de APNS. Esta API te permite importar de forma masiva tokens de APNS existentes, asignándolos a tokens de registro válidos para FCM.
Obtén información sobre las instancias de app
Para obtener información sobre una instancia de app, llama al servicio Instance ID en este extremo, lo que proporciona el token de la instancia de la 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 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.- Booleano
details
[opcional]: Establece este parámetro de consulta entrue
para obtener FCM información de suscripción al tema (si corresponde) asociada con este token. Cuando no especificado, el valor predeterminado esfalse
.
Resultados
Si se realiza correctamente, la llamada muestra el estado HTTP 200 y un objeto JSON que contiene lo siguiente:
application
: Es el nombre del paquete asociado con el token.authorizedEntity
: El projectId está autorizado para enviar al token.applicationVersion
: Es la versión de la aplicación.platform
: MuestraANDROID
,IOS
oCHROME
para indicar el dispositivo. y la plataforma a la que pertenece el token.
Si la marca details
está configurada:
rel
: relaciones asociadas con el token. Por ejemplo, una lista de temas suscripciones.
Ejemplo de solicitud GET
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",
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
Crea asignaciones de relaciones para instancias de app
La API de Instance ID te permite crear asignaciones de relación para las instancias de app. Por ejemplo, puedes asignar un token de registro a un tema de FCM suscribiendo 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
Con 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 Instance ID en este extremo, lo que proporciona 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 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.
Ejemplo de solicitud POST
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 asignaciones de relación para varias instancias de app
Con los métodos por lotes del servicio Instance ID, puedes ejecutar administración de instancias de la app. Por ejemplo, puedes realizar acciones masivas agregar o quitar instancias de apps a un tema de FCM. Para actualizar hasta 1,000 instancias de la app por llamada a la API, llama al ID de instancia en este extremo, lo que 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 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 prueba se realizó con éxito suscripción para el token. Para las suscripciones con errores, el resultado contiene uno de los siguientes códigos de error:
- NOT_FOUND: Se borró el token de registro o se desinstaló la app.
- INVALID_ARGUMENT: El token de registro proporcionado no es válido para el ID de remitente.
- INTERNO: Se produjo un error en el servidor de backend 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.
Ejemplo de solicitud POST
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 Instance ID, puedes realizar una importación masiva.
Tokens de APNS de iOS existentes para Firebase Cloud Messaging y su asignación
en tokens de registro válidos. Llama al servicio Instance ID en
este extremo, lo que 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 ID de instancia listos para enviar 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 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 para indicar el entorno de zona de pruebas (TRUE) o el de producción (FALSE).apns_tokens
: Es el array de tokens de APNS para las instancias de app que quieres agregar o quitar. Se permite un máximo de 100 tokens por solicitud.
Resultados
Si la llamada es exitosa, la llamada muestra el estado HTTP 200 y un cuerpo de resultado JSON. Por cada Token de APNS proporcionado en la solicitud, la lista de resultados incluye lo siguiente:
- El token de APNS.
- Estado. Puede ser OK o un mensaje de error que describa la falla.
- Para obtener resultados correctos, el token de registro que FCM asigna al token de APNS.
Ejemplo de solicitud POST
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 del servidor de Instance ID los siguientes códigos de error HTTP:
HTTP status 400 (Bad request)
: Parámetros de la solicitud faltantes o no 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 con elauthorizedEntity
HTTP status 404 (Not found)
: La ruta HTTP no es válida o no se encontró el token IID. Revisa los mensajes de error para obtener información detallada.HTTP status 503 (Service unavailable)
: El servicio no está disponible. Vuelve a intentar con retirada exponencial.