Documentation de référence sur le serveur

L'implémentation du serveur est facultative. Utilisez le service d'ID d'instance si vous souhaitez pour effectuer ces opérations:

Obtenir des informations sur les instances d'application

Pour obtenir des informations sur une instance d'application, appelez le service d'ID d'instance à l'adresse 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ête Authorization. Pour en savoir plus sur l'obtention de ce jeton, consultez Fournir les 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 sur true pour obtenir FCM. les informations d'abonnement à un sujet associées à ce jeton, le cas échéant. Dans le cas contraire spécifié, la valeur par défaut est false.

Résultats

En cas de réussite, l'appel renvoie l'état HTTP 200 et un objet JSON contenant:

  • application : nom du package associé au jeton.
  • authorizedEntity : ID du projet autorisé à envoyer au jeton.
  • applicationVersion : version de l'application.
  • platform : renvoie ANDROID, IOS ou CHROME pour indiquer l'appareil. de la plate-forme à laquelle appartient le jeton.

Si l'option details est définie:

  • rel : relations associées au jeton. Par exemple, une liste de thèmes abonnements.

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 d'ID d'instance vous permet de créer des mappages de relations pour les instances d'application. Par exemple, vous pouvez mapper un jeton d'enregistrement à un sujet FCM, à abonner l'instance d'application au sujet. L'API fournit des méthodes pour créer ces relations individuellement et de manière groupée.

Créer un mappage des relations pour une instance d'application

À partir d'un jeton d'enregistrement et d'une relation compatible, vous pouvez créer un mappage. Par exemple, vous pouvez abonner une instance d'application à un sujet FCM. en appelant le service d'ID d'instance ce point de terminaison, 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ête Authorization. Pour en savoir plus sur l'obtention de ce jeton, consultez Fournir les 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

À l'aide des méthodes de traitement par lot du service d'ID d'instance, vous pouvez effectuer la gestion des instances d'application. Par exemple, vous pouvez effectuer des opérations groupées ajouter ou supprimer des instances d'application dans un sujet FCM. Pour mettre à jour jusqu'à 1 000 instances d'application par appel d'API, appelez l'ID d'instance. sur 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ête Authorization. Pour en savoir plus sur l'obtention de ce jeton, consultez Fournir les identifiants manuellement
  • access_token_auth: true Définissez ce paramètre dans l'en-tête.
  • to : nom du thème.
  • registration_tokens : tableau de 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 que l'opération a réussi. pour le jeton. Pour les abonnements ayant échoué, le résultat contient 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 - Le serveur backend a échoué 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

La méthode batchImport du service d'ID d'instance vous permet d'effectuer une importation groupée les jetons APN iOS existants à Firebase Cloud Messaging, en les mappant à des jetons d'enregistrement valides. Appelez le service d'ID d'instance 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 à utiliser 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ête Authorization. Pour en savoir plus sur l'obtention de ce jeton, consultez Fournir les 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 indiquant l'environnement de bac à sable (TRUE) ou de production (FALSE)
  • apns_tokens : tableau des jetons APN 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 inclut:

  • Jeton APNs.
  • État. Soit OK, soit un message d'erreur décrivant l'échec.
  • En cas de résultat réussi, le jeton d'enregistrement que FCM est mappé 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 obtenir des informations détaillées.
  • 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 au authorizedEntity
  • HTTP status 404 (Not found) : chemin HTTP non valide ou jeton IID introuvable. Consultez les messages d'erreur pour obtenir des informations détaillées.
  • HTTP status 503 (Service unavailable) : le service est indisponible. Réessayez la avec un intervalle exponentiel entre les tentatives.