L'implémentation du serveur est facultative. Utilisez le service d'ID d'instance si vous souhaitez effectuer les opérations suivantes:
- Obtenez des informations sur les instances d'application. Vérifiez les jetons d'application ou obtenez plus d'informations sur l'instance d'application qui a créé le jeton.
- Créez des cartes de relations pour les instances d'application. Créez des relations entre des instances d'application et des entités.
- Créez des jetons d'enregistrement pour les jetons APNs. Cette API vous permet d'importer de manière groupée des jetons APNs existants en les mappant à des jetons d'enregistrement valides pour FCM.
Obtenir des informations sur les instances d'application
Pour obtenir des informations sur une instance d'application, appelez le service d'ID d'instance sur ce point de terminaison en fournissant le jeton de l'instance d'application, comme indiqué ci-dessous:
https://iid.googleapis.com/iid/info/IID_TOKEN
Paramètres
Authorization: Bearer <access_token>
: définissez ce paramètre dans l'en-tête. Ajoutez un jeton OAuth2 de courte durée comme valeur de l'en-têteAuthorization
. Pour en savoir plus sur l'obtention de ce jeton, consultez la section Fournir des identifiants manuellement.access_token_auth: true
: définissez ce paramètre dans l'en-tête.- [Facultatif] Booléen
details
: définissez ce paramètre de requête surtrue
pour obtenir les informations d'abonnement aux sujets FCM (le cas échéant) associées à ce jeton. Si aucune valeur n'est spécifiée, la valeur par défaut estfalse
.
Résultats
En cas de réussite, l'appel renvoie l'état HTTP 200 et un objet JSON contenant:
application
: nom de package associé au jeton.authorizedEntity
: ID de projet autorisé à envoyer des données au jeton.applicationVersion
: version de l'application.platform
: renvoieANDROID
,IOS
ouCHROME
pour indiquer la plate-forme de l'appareil à laquelle appartient le jeton.
Si l'option details
est définie:
rel
: relations associées au jeton. Par exemple, une liste d'abonnements à des thèmes.
Exemple de requête 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
Exemple de résultat
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"}
}
}
}
Créer des cartes de relations pour les instances d'application
L'API Instance ID vous permet de créer des cartes de relations pour les instances d'application. Par exemple, vous pouvez mapper un jeton d'enregistrement à un sujet FCM en vous abonnant à l'instance d'application. L'API fournit des méthodes pour créer de telles relations individuellement et de manière groupée.
Créer un mappage de relations pour une instance d'application
Vous pouvez créer un mappage à l'aide d'un jeton d'enregistrement et d'une relation compatible. Par exemple, vous pouvez abonner une instance d'application à un sujet FCM en appelant le service d'ID d'instance sur ce point de terminaison et en fournissant le jeton de l'instance d'application, comme indiqué ci-dessous:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Paramètres
Authorization: Bearer <access_token>
: définissez ce paramètre dans l'en-tête. Ajoutez un jeton OAuth2 de courte durée comme valeur de l'en-têteAuthorization
. Pour en savoir plus sur l'obtention de ce jeton, consultez la section Fournir des identifiants manuellement.access_token_auth: true
: définissez ce paramètre dans l'en-tête.
Résultats
En cas de réussite, l'appel renvoie l'état HTTP 200.
Exemple de requête 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
Exemple de résultat
HTTP 200 OK
{}
Gérer les cartes de relations pour plusieurs instances d'application
Vous pouvez gérer les instances d'application par lots à l'aide des méthodes du service d'ID d'instance. Par exemple, vous pouvez ajouter ou supprimer de manière groupée des instances d'application dans un sujet FCM. Pour mettre à jour jusqu'à 1 000 instances d'application par appel d'API, appelez le service d'ID d'instance au niveau de ce point de terminaison, en fournissant les jetons d'instance d'application dans le corps JSON:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Paramètres
Authorization: Bearer <access_token>
: définissez ce paramètre dans l'en-tête. Ajoutez un jeton OAuth2 de courte durée comme valeur de l'en-têteAuthorization
. Pour en savoir plus sur l'obtention de ce jeton, consultez la section Fournir des identifiants manuellement.access_token_auth: true
: définissez ce paramètre dans l'en-tête.to
: nom du sujetregistration_tokens
: tableau des jetons IID pour les instances d'application que vous souhaitez ajouter ou supprimer.
Résultats
En cas de réussite, l'appel renvoie l'état HTTP 200. Les résultats vides indiquent un abonnement réussi pour le jeton. Pour les abonnements ayant échoué, le résultat contient l'un des codes d'erreur suivants:
- NOT_FOUND : le jeton d'enregistrement a été supprimé ou l'application a été désinstallée.
- INVALID_ARGUMENT : le jeton d'enregistrement fourni n'est pas valide pour l'ID de l'expéditeur.
- INTERNE : échec du serveur backend pour une raison inconnue. Réessayez d'envoyer la requête.
- TOO_MANY_TOPICS : nombre excessif de thèmes par instance d'application.
- RESOURCE_EXHAUSTED : trop de demandes d'abonnement ou de désabonnement en peu de temps. Réessayer avec un intervalle exponentiel entre les tentatives
Exemple de requête 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..."],
}
Exemple de résultat
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
Créer des jetons d'enregistrement pour les jetons APNs
À l'aide de la méthode batchImport
du service d'ID d'instance, vous pouvez importer de manière groupée les jetons APNs iOS existants dans Firebase Cloud Messaging, en les mappant à des jetons d'enregistrement valides. Appelez le service d'ID d'instance sur ce point de terminaison en fournissant une liste de jetons APNs dans le corps JSON:
https://iid.googleapis.com/iid/v1:batchImport
Le corps de la réponse contient un tableau de jetons d'enregistrement d'ID d'instance prêts à être utilisés pour envoyer des messages FCM au jeton d'appareil APNs correspondant.
Paramètres
Authorization: Bearer <access_token>
: définissez ce paramètre dans l'en-tête. Ajoutez un jeton OAuth2 de courte durée comme valeur de l'en-têteAuthorization
. Pour en savoir plus sur l'obtention de ce jeton, consultez la section Fournir des identifiants manuellement.access_token_auth: true
: définissez ce paramètre dans l'en-tête.application
: ID de bundle de l'application.sandbox
: booléen pour indiquer l'environnement de bac à sable (TRUE) ou de production (FALSE).apns_tokens
: tableau des jetons APNs pour les instances d'application que vous souhaitez ajouter ou supprimer. 100 jetons maximum par requête.
Résultats
En cas de réussite, l'appel renvoie l'état HTTP 200 et un corps de résultat JSON. Pour chaque jeton APNs fourni dans la requête, la liste des résultats comprend les éléments suivants:
- Jeton APNs.
- État. Soit "OK", ou un message d'erreur décrivant l'échec s'affiche.
- Pour que les résultats soient concluants, il s'agit du jeton d'enregistrement mappé par FCM au jeton APNs.
Exemple de requête 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"
]
}
Exemple de résultat
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
Réponses d'erreur
Les appels à l'API du serveur d'ID d'instance renvoient les codes d'erreur HTTP suivants:
HTTP status 400 (Bad request)
: les paramètres de requête sont manquants ou non valides. Consultez les messages d'erreur pour en savoir plus.HTTP status 401 (Unauthorized)
: l'en-tête d'autorisation n'est pas valide.HTTP status 403 (Forbidden)
: l'en-tête d'autorisation ne correspond pas àauthorizedEntity
.HTTP status 404 (Not found)
: chemin HTTP non valide ou jeton IID introuvable. Consultez les messages d'erreur pour en savoir plus.HTTP status 503 (Service unavailable)
: le service n'est pas disponible. Relancez la requête avec un intervalle exponentiel entre les tentatives.