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 effectuer les opérations suivantes:

Obtenir des informations sur les instances d'application

Pour obtenir des informations sur une instance d'application, appelez le service d'ID d'instance à ce point de terminaison, en fournissant le jeton de l'instance d'application comme indiqué:

 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 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 sur true pour obtenir les informations d'abonnement au sujet FCM (le cas échéant) associées à ce jeton. Si cette valeur n'est pas spécifiée, elle prend la valeur par défaut de false.

Résultats

En cas de réussite, l'appel renvoie le code d'état HTTP 200 et un objet JSON contenant les éléments suivants:

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

Si l'indicateur details est défini:

  • rel : relations associées au jeton. Par exemple, une liste d'abonnements à des sujets.

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 abonnant l'instance de l'application au sujet. L'API fournit des méthodes permettant de créer ces relations individuellement et de manière groupée.

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

Vous pouvez créer une mise en correspondance à partir 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 à ce point de terminaison, en fournissant le jeton de l'instance d'application comme indiqué:

 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 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

Les méthodes par lot du service d'ID d'instance vous permettent de gérer les instances d'application par lot. Par exemple, vous pouvez ajouter ou supprimer des instances d'application à un thème FCM de manière groupée. Pour mettre à jour jusqu'à 1 000 instances d'application par appel d'API, appelez le service d'ID d'instance à 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 la section Fournir des identifiants manuellement.
  • access_token_auth: true. Définissez ce paramètre dans l'en-tête.
  • to : nom du sujet.
  • registration_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 que l'abonnement au jeton a réussi. Pour les abonnements qui échouent, 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 d'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 sujets par instance d'application.
  • RESOURCE_EXHAUSTED : trop de demandes d'abonnement ou de résiliation 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 APN

À l'aide de la méthode batchImport du service Instance ID, vous pouvez importer de manière groupée des jetons APNs iOS existants dans Firebase Cloud Messaging, en les mappant sur des jetons d'enregistrement valides. Appelez le service Instance ID à ce point de terminaison, en fournissant une liste de jetons APN 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 APN 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 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 : valeur booléenne indiquant l'environnement 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 le code d'état HTTP 200 et un corps de résultat JSON. Pour chaque jeton APN fourni dans la requête, la liste des résultats inclut les éléments suivants:

  • Jeton APNs.
  • État. "OK" ou un message d'erreur décrivant l'échec.
  • En cas de réussite, le jeton d'enregistrement que FCM met en correspondance avec le jeton APN.

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 incorrects. 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 d'accès HTTP non valide ou jeton IID introuvable. Consultez les messages d'erreur pour en savoir plus.
  • HTTP status 503 (Service unavailable) : service indisponible. Réessayez la requête avec un intervalle exponentiel entre les tentatives.