1. Introduction
Par rapport à l'ancienne API FCM, l'API FCM HTTP v1 fournit un modèle d'autorisation plus sécurisé utilisant des jetons d'accès de courte durée. Les étapes de génération du jeton d'accès pour l'API FCM v1 sont très différentes des étapes pour l'API héritée.
Cet atelier de programmation vous guide tout au long du processus de configuration côté client et côté serveur pour permettre l'envoi de notifications push à une application Android à l'aide de l'API HTTP v1 de FCM. Il met en évidence l'étape clé de la génération des informations d'identification pour l'API v1.
De plus amples informations peuvent être trouvées à l'adresse suivante :
Conditions préalables
- Compréhension de base du développement Java et Android
Ce que vous apprendrez
- Étapes détaillées de configuration côté client et serveur pour permettre l'envoi de notifications push à votre application Android à l'aide de l'API FCM HTTP v1
- Génération d'informations d'identification pour l'API HTTP v1 à l'aide de comptes de service
- Envoi de messages de test via l'API HTTP v1
Ce dont vous aurez besoin
Dernière version stable d'Android Studio
L'un des appareils suivants :
- Un appareil Android physique connecté à votre ordinateur
- Un émulateur Android (voir Exécuter des applications sur l'émulateur Android )
Un environnement de développement Java ou un éditeur de code de votre choix
2. Projet Firebase et configuration de l'application Android
À la fin de l'atelier de code, vous serez en mesure d'envoyer des messages à votre application à l'aide de Firebase Cloud Messaging. Avant de faire cela, vous devrez créer un projet Firebase. Cet atelier de programmation fournit également une application Android contenant un exemple de code à intégrer à FCM.
Configuration du projet Firebase
- Suivez "Étape 1 : Créer un projet Firebase " pour créer votre propre projet Firebase pour cet atelier de programmation.
Configuration de l'application Android
L'exemple d'application Android fourni dans cet atelier de programmation est déjà intégré à FCM. Après le démarrage, il s'enregistrera auprès du serveur FCM et s'abonnera à un sujet. Au cours des dernières étapes de cet atelier de programmation, vous enverrez un message de sujet au sujet et votre application le recevra.
- Téléchargez l' exemple de démarrage rapide de Firebase Android .
- Importez le projet sous https://github.com/firebase/quickstart-android/tree/master/messaging dans Android Studio.
- Enregistrez l'application dans la console Firebase. Le nom de l'application est
com.google.firebase.quickstart.fcm
. Enregistrez cette application dans votre projet Firebase en suivant les étapes de la section "Étape 2 : Enregistrez votre application auprès de Firebase ". - Suivez la partie 1 de "Étape 3 : Ajouter un fichier de configuration Firebase " pour télécharger
google-services.json
et ajoutez-le à votre projet. Construisez et exécutez le projet.
3. Configurez le serveur d'applications
Maintenant que votre application est configurée, vous devez télécharger un exemple de code côté serveur pour envoyer des messages à votre application à l'aide de l'API FCM v1. Ce code charge les informations d'identification de l'API (décrites dans la section suivante) pour générer un jeton d'accès. Il envoie ensuite un message à votre application à l'aide de la messagerie thématique FCM.
- Importez le code du serveur de démarrage en téléchargeant le projet Github . Le projet "messaging" est un projet Java basé sur Gradle avec une dépendance sur le SDK Firebase-admin , qui fournit des fonctionnalités pour envoyer des messages.
Plus de détails sur la manière dont un serveur d'applications doit fonctionner avec FCM sont disponibles dans le document Votre environnement de serveur et FCM .
4. Obtenez les informations d'identification v1
L'API FCM HTTP v1 utilise des jetons d'accès de courte durée selon le modèle de sécurité OAuth2. Comparé à la clé API statique utilisée dans l'API héritée de FCM, le jeton d'accès de courte durée est moins sujet au risque de fuite d'informations d'identification. Cette section détaille les étapes de création d'un identifiant permettant de générer le jeton d'accès utilisé pour appeler l'API.
- Configurez un compte de service Firebase pour permettre au SDK d'administration Firebase d'autoriser les appels aux API FCM. Ouvrez les paramètres du projet dans la console Firebase et sélectionnez l'onglet Comptes de service . Cliquez sur Générer une nouvelle clé privée pour télécharger l'extrait de configuration.
- Dans le projet Github téléchargé, renommez le fichier téléchargé en
service-account.json
et copiez-le dansmessaging/
chemin du projet. - La méthode
getAccessToken()
(illustré ci-dessous) dans la classeMessaging.java
génère un jeton OAuth2 valable 1 heure.
private static String getAccessToken() throws IOException { GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("service-account.json")).createScoped(Arrays.asList(SCOPES)); googleCredentials.refresh(); return googleCredentials.getAccessToken().getTokenValue(); }
- Changez la méthode main pour ajouter la ligne suivante :
public static void main(String[] args) throws IOException { System.out.println(getAccessToken()); ... }
- Accédez au répertoire messagerie/projet de votre terminal et tapez :
./gradlew run -Pmessage=common-message
pour imprimer le jeton OAuth2.
Plus d’informations peuvent être trouvées dans Autoriser les demandes d’envoi .
5. Envoyez un message avec l'API REST
Vous êtes maintenant prêt à envoyer un message via l'API HTTP v1. Suivez les étapes ci-dessous :
- Pour ajouter le jeton d'accès à un en-tête de requête HTTP :
- Ajoutez le jeton comme valeur de l'en-tête Authorization au format
Authorization: Bearer <access_token>
- Effectuez une requête HTTP à l'API FCM v1 à l'aide de curl :
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAuth2_token" -H "X-GFE-SSL: yes" -d "{\"message\": {\"topic\": \"$topic_name\", \"notification\": {\"title\": \"breaking news\", \"body\": \"This is breaking news\"}}}" https://fcm.googleapis.com/v1/projects/[PROJECT_NAME]/messages:send
Le $topic_name
ci-dessus se trouve dans le code de l'application Android mentionné dans le projet Firebase et la configuration de l'application Android. Par défaut c'est "weather"
.
- Une fois qu'un message a été envoyé avec succès, vous devriez voir une notification apparaître sur votre écran, similaire à l'image ci-dessous :
6. Conclusion
Toutes nos félicitations! Vous avez terminé avec succès l'atelier de programmation pour :
- Configurer un projet Firebase
- Intégrer Firebase à une application Android
- Créer des informations d'identification pour l'API FCM HTTP v1
- Envoyez un message à votre application via l'API FCM HTTP v1
Pour explorer les fonctionnalités avancées offertes par FCM, les références suivantes sont utiles :