Referencia del servidor

La implementación en el servidor es opcional. Usa el servicio de ID de instancia si deseas realizar estas operaciones:

Obtén información sobre las instancias de la app

Para obtener información sobre una instancia de la app, llama al servicio de ID de instancia en este extremo y 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 OAuth2 de corta duración como el valor del encabezado Authorization. Para obtener más información sobre cómo obtener este token, consulta Proporciona credenciales de forma manual.
  • access_token_auth: true. Establece este parámetro en el encabezado.
  • Booleano details [opcional]: Establece este parámetro de consulta en true para obtener la información de suscripción al tema de FCM (si corresponde) asociada con este token. Si no se especifica, el valor predeterminado es false.

Resultados

Si la operación es exitosa, 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 ID del proyecto está autorizado para enviar al token.
  • applicationVersion: Es la versión de la aplicación.
  • platform: Muestra ANDROID, IOS o CHROME para indicar la plataforma del dispositivo a la que pertenece el token.

Si se configura la marca details, sucede lo siguiente:

  • rel: Relaciones asociadas con el token. Por ejemplo, una lista de suscripciones a temas.

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 mapas de relaciones para instancias de apps

La API de Instance ID te permite crear mapas de relación para las instancias de app. 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 esas 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, para suscribir una instancia de la app a un tema de FCM, llama al servicio de ID de instancia en este extremo y 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 OAuth2 de corta duración como el valor del encabezado Authorization. Para obtener más información sobre cómo obtener este token, consulta Proporciona credenciales de forma manual.
  • access_token_auth: true. Establece este parámetro en el encabezado.

Resultados

Si la operación es exitosa, 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 relaciones para instancias múltiples de app

Con los métodos por lotes del servicio Instance ID, puedes realizar la administración por lotes de las instancias de app. Por ejemplo, puedes agregar o quitar de forma masiva instancias de apps a un tema de FCM. Para actualizar hasta 1, 000 instancias de app por llamada a la API, llama al servicio Instance ID 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 OAuth2 de corta duración como el valor del encabezado Authorization. Para obtener más información sobre cómo obtener este token, consulta Proporciona 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 IID para las instancias de app que deseas agregar o quitar.

Resultados

Si la operación es exitosa, la llamada muestra el estado HTTP 200. Los resultados vacíos indican una suscripción exitosa del token. En el caso de 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_ATTRIBUTE: El token de registro proporcionado no es válido para el ID del 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. Volver 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 importar de forma masiva los 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 de 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 usarse 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 OAuth2 de corta duración como el valor del encabezado Authorization. Para obtener más información sobre cómo obtener este token, consulta Proporciona 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 : Booleano para indicar el entorno de la zona de pruebas (TRUE) o el entorno de producción (FALSE).
  • apns_tokens : El array de tokens de APNS para las instancias de app que deseas agregar o quitar. 100 tokens como máximo por solicitud.

Resultados

Si se ejecuta de forma correcta, la llamada muestra el estado HTTP 200 y un cuerpo del resultado JSON. Para cada token de APNS que se proporciona en la solicitud, la lista de resultados incluye lo siguiente:

  • El token de APNS.
  • Estado. Está bien o aparece un mensaje de error que describe la falla.
  • Para obtener resultados exitosos, 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 de servidor de Instance ID muestran los siguientes códigos de error HTTP:

  • HTTP status 400 (Bad request): Faltan parámetros de solicitud 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 con authorizedEntity.
  • HTTP status 404 (Not found): Ruta HTTP no 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 la solicitud con una retirada exponencial.