Riferimento server

L'implementazione del server è facoltativa. Utilizza il servizio ID istanza se vuoi eseguire queste operazioni:

Visualizzare le informazioni sulle istanze dell'app

Per ottenere informazioni su un'istanza dell'app, chiama il servizio Instance ID a questo endpoint, fornendo il token dell'istanza dell'app come mostrato:

 https://iid.googleapis.com/iid/info/IID_TOKEN

Parametri

  • Authorization: Bearer <access_token>. Imposta questo parametro nell'intestazione. Aggiungi un token OAuth2 di breve durata come valore dell'intestazione Authorization. Per ulteriori informazioni su come ottenere questo token, consulta Fornire le credenziali manualmente.
  • access_token_auth: true. Imposta questo parametro nell'intestazione.
  • [Facoltativo] booleano details: imposta questo parametro di query su true per ottenere le informazioni sull'iscrizione agli argomenti FCM (se presenti) associate a questo token. Se non specificato, il valore predefinito è false.

Risultati

In caso di esito positivo, la chiamata restituisce lo stato HTTP 200 e un oggetto JSON contenente:

  • application: il nome del pacchetto associato al token.
  • authorizedEntity: ID progetto autorizzato all'invio al token.
  • applicationVersion - versione dell'applicazione.
  • platform: restituisce ANDROID, IOS o CHROME per indicare la piattaforma del dispositivo a cui appartiene il token.

Se il flag details è impostato:

  • rel: relazioni associate al token. Ad esempio, un elenco di iscrizioni a argomenti.

Esempio di richiesta 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

Esempio di risultato

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"}
    }
  }
}

Creare mappe delle relazioni per le istanze dell'app

L'API Instance ID ti consente di creare mappe delle relazioni per le istanze dell'app. Ad esempio, puoi mappare un token di registrazione a un argomento FCM, sottoscrivendo l'istanza dell'app all'argomento. L'API fornisce metodi per creare queste relazioni sia singolarmente sia collettivamente.

Creare una mappatura delle relazioni per un'istanza dell'app

Dati un token di registrazione e una relazione supportata, puoi creare una mappatura. Ad esempio, puoi abbonare un'istanza dell'app a un argomento FCM chiamando il servizio ID istanza a questo endpoint, fornendo il token dell'istanza dell'app come mostrato:

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

Parametri

  • Authorization: Bearer <access_token>. Imposta questo parametro nell'intestazione. Aggiungi un token OAuth2 di breve durata come valore dell'intestazione Authorization. Per ulteriori informazioni su come ottenere questo token, consulta Fornire le credenziali manualmente.
  • access_token_auth: true. Imposta questo parametro nell'intestazione.

Risultati

In caso di esito positivo, la chiamata restituisce il codice di stato HTTP 200.

Esempio di richiesta 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

Esempio di risultato

HTTP 200 OK
{}

Gestire le mappe delle relazioni per più istanze di app

Utilizzando i metodi batch del servizio Instance ID, puoi eseguire la gestione batch delle istanze dell'app. Ad esempio, puoi eseguire l'aggiunta o la rimozione collettiva di istanze di app a un argomento FCM. Per aggiornare fino a 1000 istanze di app per chiamata API, chiama il servizio ID istanza in questo endpoint, fornendo i token delle istanze di app nel corpo JSON:

 https://iid.googleapis.com/iid/v1:batchAdd

 https://iid.googleapis.com/iid/v1:batchRemove

Parametri

  • Authorization: Bearer <access_token>. Imposta questo parametro nell'intestazione. Aggiungi un token OAuth2 di breve durata come valore dell'intestazione Authorization. Per ulteriori informazioni su come ottenere questo token, consulta Fornire le credenziali manualmente.
  • access_token_auth: true. Imposta questo parametro nell'intestazione.
  • to : il nome dell'argomento.
  • registration_tokens : l'array di token IID per le istanze dell'app che vuoi aggiungere o rimuovere.

Risultati

In caso di esito positivo, la chiamata restituisce il codice di stato HTTP 200. I risultati vuoti indicano che l'abbonamento per il token è andato a buon fine. Per le iscrizioni non riuscite, il risultato contiene uno di questi codici di errore:

  • NOT_FOUND: il token di registrazione è stato eliminato o l'app è stata disinstallata.
  • INVALID_ARGUMENT: il token di registrazione fornito non è valido per l'ID mittente.
  • INTERNO: il server di backend non è riuscito per motivi sconosciuti. Riprova a inviare la richiesta.
  • TOO_MANY_TOPICS: numero eccessivo di argomenti per istanza dell'app.
  • RESOURCE_EXHAUSTED: troppe richieste di abbonamento o annullamento dell'abbonamento in un breve periodo di tempo. Riprova con il backoff esponenziale.

Esempio di richiesta 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..."],
}

Esempio di risultato

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}

Creare token di registrazione per i token APN

Utilizzando il metodo batchImport del servizio Instance ID, puoi importare collettivamente i token APN per iOS esistenti in Firebase Cloud Messaging, mappandoli a token di registrazione validi. Chiama il servizio ID istanza a questo endpoint, fornendo un elenco di token APN nel corpo JSON:

 https://iid.googleapis.com/iid/v1:batchImport

Il corpo della risposta contiene un array di token di registrazione dell'ID istanza pronti da utilizzare per l'invio di messaggi FCM al token dispositivo APNs corrispondente.

Parametri

  • Authorization: Bearer <access_token>. Imposta questo parametro nell'intestazione. Aggiungi un token OAuth2 di breve durata come valore dell'intestazione Authorization. Per ulteriori informazioni su come ottenere questo token, consulta Fornire le credenziali manualmente.
  • access_token_auth: true. Imposta questo parametro nell'intestazione.
  • application : ID bundle dell'app.
  • sandbox : valore booleano per indicare l'ambiente sandbox (TRUE) o di produzione (FALSE)
  • apns_tokens : l'array di token APN per le istanze dell'app che vuoi aggiungere o rimuovere. Massimo 100 token per richiesta.

Risultati

In caso di esito positivo, la chiamata restituisce lo stato HTTP 200 e un corpo del risultato JSON. Per ogni token APN fornito nella richiesta, l'elenco dei risultati include:

  • Il token APN.
  • Stato. OK o un messaggio di errore che descrive l'errore.
  • Per i risultati positivi, il token di registrazione che FCM mappa al token APN.

Esempio di richiesta 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"
   ]
}

Esempio di risultato

HTTP 200 OK
{
 "results":[
       {
        "apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
         "status": "OK",
         "registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
       },
       {
         "apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
         "status":"Internal Server Error"
        },
     ]
  }

Risposte di errore

Le chiamate all'API server Instance ID restituiscono i seguenti codici di errore HTTP:

  • HTTP status 400 (Bad request): i parametri di richiesta sono mancanti o non validi. Controlla i messaggi di errore per informazioni dettagliate.
  • HTTP status 401 (Unauthorized) - L'intestazione di autorizzazione non è valida.
  • HTTP status 403 (Forbidden) - l'intestazione di autorizzazione non corrisponde a authorizedEntity.
  • HTTP status 404 (Not found) - Percorso HTTP non valido o token IID non trovato. Controlla i messaggi di errore per informazioni dettagliate.
  • HTTP status 503 (Service unavailable) - servizio non disponibile. Riprova la richiesta con backoff esponenziale.