Riferimento server

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

Ottenere informazioni sulle istanze dell'app

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

 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] Valore booleano details: imposta questo parametro di query su true per ottenere le informazioni sull'abbonamento all'argomento FCM (se presenti) associate a questo token. Se non specificato, il valore predefinito è false.

Risultati

Se la chiamata va a buon fine, restituisce lo stato HTTP 200 e un oggetto JSON contenente:

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

Se il details flag è impostato:

  • rel - le relazioni associate al token. Ad esempio, un elenco di abbonamenti agli 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 di relazioni per le istanze dell'app

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

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

Dato 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 di seguito:

 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

Se la chiamata va a buon fine, restituisce lo 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 di relazioni per più istanze dell'app

Utilizzando i metodi batch del servizio ID istanza, puoi eseguire la gestione batch delle istanze dell'app. Ad esempio, puoi aggiungere o rimuovere in blocco le istanze dell'app da un argomento FCM. Per aggiornare fino a 1000 istanze dell'app per chiamata API, chiama il servizio ID istanza a questo endpoint, fornendo i token dell'istanza dell'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

Se la chiamata va a buon fine, restituisce lo stato HTTP 200. I risultati vuoti indicano che l'abbonamento per il token è andato a buon fine. Per gli abbonamenti non riusciti, 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.
  • INTERNAL: 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 un 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 ID istanza, puoi importare in blocco i token APN iOS esistenti in Firebase Cloud Messaging, mappandoli ai 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 ID istanza pronti per essere utilizzati per l'invio di messaggi FCM al token del dispositivo APN 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 : l'ID bundle dell'app.
  • sandbox : un valore booleano che indica 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

Se la chiamata va a buon fine, restituisce lo stato HTTP 200 e un corpo di risultati 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 riusciti, 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 del server ID istanza restituiscono i seguenti codici di errore HTTP:

  • HTTP status 400 (Bad request) - i parametri della richiesta sono mancanti o non validi. Per informazioni dettagliate, consulta i messaggi di errore.
  • 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. Per informazioni dettagliate, consulta i messaggi di errore.
  • HTTP status 503 (Service unavailable) - il servizio non è disponibile. Riprova a inviare la richiesta con un backoff esponenziale.