L'implementazione del server è facoltativa. Utilizza il servizio ID istanza se vuoi eseguire queste operazioni:
- Ottenere informazioni sulle istanze dell'app. Verifica i token delle app o ottieni ulteriori informazioni sull'istanza dell'app che ha creato il token.
- Crea mappe delle relazioni per le istanze dell'app. Crea relazioni tra istanze e entità dell'app.
- Crea token di registrazione per i token APN. Questa API consente di importare collettivamente i token APN esistenti, mappandoli a token di registrazione validi per FCM.
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'intestazioneAuthorization
. 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 sutrue
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
: restituisceANDROID
,IOS
oCHROME
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'intestazioneAuthorization
. 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'intestazioneAuthorization
. 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'intestazioneAuthorization
. 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 aauthorizedEntity
.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.