1. Introduction
Par rapport à l'ancienne API FCM, l'API HTTP v1 de FCM fournit un modèle d'autorisation plus sécurisé utilisant des jetons d'accès de courte durée. La procédure de génération du jeton d'accès pour l'API FCM v1 est très différente de celle de l'ancienne API.
Cet atelier de programmation vous explique comment configurer le côté client et le côté serveur pour envoyer des notifications push à une application Android à l'aide de l'API FCM HTTP v1. Il met en évidence l'étape clé de la génération d'identifiants pour l'API v1.
Pour en savoir plus:
Prérequis
- Connaissances de base en développement Java et Android
Points abordés
- Étapes détaillées de configuration côté client et serveur pour activer l'envoi de notifications push à votre application Android à l'aide de l'API FCM HTTP v1
- Génération d'identifiants pour l'API HTTP v1 à l'aide de comptes de service
- Envoyer des messages de test via l'API HTTP v1
Prérequis
La 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 Android Emulator)
Un environnement de développement Java ou un éditeur de code de votre choix
2. Configuration du projet Firebase et de l'application Android
À la fin de l'atelier de programmation, vous serez en mesure d'envoyer des messages à votre application à l'aide de Firebase Cloud Messaging. Pour ce faire, vous devez 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 la section "É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'application Android exemple fournie dans cet atelier de programmation est déjà intégrée à FCM. Une fois démarré, il s'enregistrera auprès du serveur FCM et s'abonnera à un sujet. Dans les étapes suivantes 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 Firebase pour Android.
- Importez le projet disponible sur 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 la section "Étape 2: Enregistrer votre application auprès de Firebase". - Suivez la partie 1 de l'étape 3 intitulée Ajouter un fichier de configuration Firebase pour télécharger
google-services.json
et l'ajouter à votre projet. Créez et exécutez le projet.
3. Configurer le serveur d'application
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 identifiants de l'API (décrits 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 de sujets 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 au SDK firebase-admin, qui fournit des fonctionnalités permettant d'envoyer des messages.
Pour en savoir plus sur le fonctionnement d'un serveur d'application avec FCM, consultez le document Votre environnement de serveur et FCM.
4. Obtenir des identifiants v1
L'API FCM HTTP v1 utilise des jetons d'accès éphémères conformément au modèle de sécurité OAuth2. Par rapport à la clé API statique utilisée dans l'ancienne API FCM, le jeton d'accès éphémère est moins exposé au risque de fuite d'identifiants. Cette section décrit la procédure à suivre pour créer des identifiants 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 Firebase Admin d'autoriser les appels aux API FCM. Ouvrez Paramètres du projet dans la console Firebase, puis 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 dans le chemin d'accèsmessaging/
du projet. - La méthode
getAccessToken()
(ci-dessous) de la classeMessaging.java
génère un jeton OAuth2 valide pendant une 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(); }
- Modifiez la méthode principale pour ajouter la ligne suivante:
public static void main(String[] args) throws IOException { System.out.println(getAccessToken()); ... }
- Accédez au répertoire de messagerie/ projet dans votre terminal, puis saisissez:
./gradlew run -Pmessage=common-message
pour imprimer le jeton OAuth2.
Pour en savoir plus, consultez Autoriser les demandes d'envoi.
5. Envoyer un message avec l'API REST
Vous êtes maintenant prêt à envoyer un message via l'API HTTP v1. Suivez les instructions 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 d'autorisation au format
Authorization: Bearer <access_token>
. - Envoyez 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 la configuration du projet Firebase et de l'application Android. La valeur par défaut est "weather"
.
- Une fois le message envoyé, une notification devrait s'afficher à l'écran, semblable à celle ci-dessous:
6. Conclusion
Félicitations ! Vous avez terminé l'atelier de programmation pour:
- Configurer un projet Firebase
- Intégrer Firebase à une application Android
- Créer des identifiants pour l'API FCM HTTP v1
- Envoyer un message à votre application via l'API HTTP v1 de FCM
Pour explorer les fonctionnalités avancées offertes par FCM, consultez les références suivantes: