L'implementazione del server è facoltativa. Utilizza il servizio ID istanza se vuoi eseguire queste operazioni:
- Ottenere informazioni sulle istanze dell'app. Verifica i token dell'app o ottieni maggiori informazioni sull'istanza dell'app che ha creato il token.
- Crea mappe delle relazioni per le istanze delle app. Crea relazioni tra le istanze e le entità dell'app.
- Crea token di registrazione per i token APN. Questa API consente di importare in blocco i token APN esistenti, mappandoli a token di registrazione validi per FCM.
Recuperare 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:
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, vedi Fornire le credenziali manualmente.access_token_auth: true
. Imposta questo parametro nell'intestazione.- [facoltativo] booleano
details
: imposta questo parametro di query sutrue
per ottenere informazioni sulle iscrizioni 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
- nome del pacchetto associato al token.authorizedEntity
- projectId autorizzato a inviare 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 abbonamenti a un argomento.
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 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, abbonando l'istanza dell'app all'argomento. L'API fornisce metodi per creare queste relazioni sia singolarmente sia in blocco.
Crea 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 iscrivere 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 maggiori informazioni su come ottenere questo token, vedi Fornire le credenziali manualmente.access_token_auth: true
. Imposta questo parametro nell'intestazione.
Risultati
Se la chiamata ha esito positivo, 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 delle relazioni per più istanze dell'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 dell'app a 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'intestazioneAuthorization
. Per maggiori informazioni su come ottenere questo token, vedi 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 ha esito positivo, restituisce lo stato HTTP 200. I risultati vuoti indicano l'iscrizione riuscita per il token. 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 a rispondere per motivi sconosciuti. Riprova a inviare la richiesta.
- TOO_MANY_TOPICS: numero eccessivo di argomenti per istanza dell'app.
- RESOURCE_EXHAUSTED: troppe richieste di iscrizione o annullamento dell'iscrizione 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"},
{},
]
}
Crea token di registrazione per i token APN
Utilizzando il metodo batchImport
del servizio Instance ID, puoi importare collettivamente i token APN iOS esistenti in Firebase Cloud Messaging, mappandoli con 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 dispositivo 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, vedi Fornire le credenziali manualmente.access_token_auth: true
. Imposta questo parametro nell'intestazione.application
: l'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 APNs 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 APNs.
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 ID istanza restituiscono i seguenti codici di errore HTTP:
HTTP status 400 (Bad request)
: i parametri della 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)
- il servizio non è disponibile. Riprova a inviare la richiesta con backoff esponenziale.