L'implementazione del server è facoltativa. Utilizza il servizio ID istanza se vuoi eseguire queste operazioni:
- Trova informazioni sulle istanze dell'app. Verifica i token dell'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 ed entità dell'app.
- Crea token di registrazione per i token del servizio APN. Questa API consente di importare in blocco i token del servizio APN esistenti, mappandoli a token di registrazione validi per FCM.
Ottieni informazioni sulle istanze dell'app
Per ottenere informazioni su un'istanza di app, chiama il servizio ID istanza su 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 maggiori informazioni su come ottenere questo token, consulta Fornire manualmente le credenziali.access_token_auth: true
. Imposta questo parametro nell'intestazione.- [Facoltativo] Booleano
details
: imposta questo parametro di query sutrue
per ottenere eventuali informazioni sull'abbonamento all'argomento FCM (se presenti) associate al token. Se non specificato, il valore predefinito èfalse
.
Risultati
Se l'operazione ha esito positivo, la chiamata restituisce lo stato HTTP 200 e un oggetto JSON contenente:
application
: nome del pacchetto associato al token.authorizedEntity
: ID progetto autorizzato all'invio al token.applicationVersion
: la versione dell'applicazione.appSigner
: improntasha1
per la firma applicata al pacco. Indica quale parte ha firmato l'app; ad esempio,Play Store
.platform
: restituisceANDROID
,IOS
oCHROME
per indicare la piattaforma del dispositivo a cui appartiene il token.
Se è impostato il flag details
:
rel
: relazioni associate al token. ad esempio un elenco di abbonamenti ad 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",
"appSigner":"1a2bc3d4e5"
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
Crea mappe delle relazioni per le istanze di app
L'API Instance ID 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 che in blocco.
Crea una mappatura delle relazioni per un'istanza di app
Dati un token di registrazione e una relazione supportata, puoi creare un mapping. Ad esempio, puoi sottoscrivere un'istanza di app a un argomento FCM chiamando il servizio ID istanza su 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'intestazioneAuthorization
. Per maggiori informazioni su come ottenere questo token, consulta Fornire manualmente le credenziali.access_token_auth: true
. Imposta questo parametro nell'intestazione.
Risultati
Se l'operazione ha esito positivo, la chiamata 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
{}
Gestisci le mappe delle relazioni per più istanze di app
Utilizzando i metodi batch del servizio ID istanza, puoi eseguire la gestione batch delle istanze dell'app. Ad esempio, puoi eseguire l'aggiunta o la rimozione in blocco 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 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'intestazioneAuthorization
. Per maggiori informazioni su come ottenere questo token, consulta Fornire manualmente le credenziali.access_token_auth: true
. Imposta questo parametro nell'intestazione.to
: nome dell'argomento.registration_tokens
: l'array di token IID per le istanze dell'app da aggiungere o rimuovere.
Risultati
Se l'operazione ha esito positivo, la chiamata restituisce lo stato HTTP 200. I risultati vuoti indicano che la sottoscrizione del token è stata eseguita correttamente. 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.
- INTERNO: errore del server di backend per motivi sconosciuti. Riprova a inviare la richiesta.
- TOO_MANY_TOPICS: numero eccessivo di argomenti per istanza di app.
- RESOURCE_EXHAUSTED - Troppe richieste di abbonamento o annullamento dell'iscrizione 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"},
{},
]
}
Crea token di registrazione per i token del servizio APN
Con il metodo batchImport
del servizio ID istanza, puoi importare in blocco i token del servizio APN per iOS esistenti in Firebase Cloud Messaging, mappandoli a token di registrazione validi. Chiama il servizio ID istanza in 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 per essere utilizzati per inviare messaggi FCM al token del dispositivo del servizio APN corrispondente.
Parametri
Authorization: Bearer <access_token>
. Imposta questo parametro nell'intestazione. Aggiungi un token OAuth2 di breve durata come valore dell'intestazioneAuthorization
. Per maggiori informazioni su come ottenere questo token, consulta Fornire manualmente le credenziali.access_token_auth: true
. Imposta questo parametro nell'intestazione.application
: ID pacchetto dell'app.sandbox
: valore booleano per indicare l'ambiente sandbox (TRUE) o la 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 l'operazione ha 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 del servizio APN.
- Stato. OK o un messaggio che descrive l'errore.
- Per ottenere risultati positivi, il token di registrazione che FCM mappa sul token del servizio 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 Instance ID server restituiscono i seguenti codici di errore HTTP:
HTTP status 400 (Bad request)
: parametri della richiesta mancanti o non validi. Per informazioni dettagliate, controlla i messaggi di errore.HTTP status 401 (Unauthorized)
: l'intestazione dell'autorizzazione non è valida.HTTP status 403 (Forbidden)
: l'intestazione dell'autorizzazione non corrisponde aauthorizedEntity
.HTTP status 404 (Not found)
: percorso HTTP non valido o token IID non trovato. Per informazioni dettagliate, controlla i messaggi di errore.HTTP status 503 (Service unavailable)
: servizio non disponibile. Riprova la richiesta con backoff esponenziale.