74 votes

Comment Créer un Sujet dans les Notifications FCM

Je suis en train d'essayer l'API de notification Firebase, le service fonctionne parfaitement lorsque j'envoie un message en aval de la console vers l'application, mais comment envoyer un message aux utilisateurs inscrits à un sujet ?

Je l'ai fait du côté Android

FirebaseMessaging.getInstance().subscribeToTopic("NomDuSujet");

mais lorsque j'essaie d'envoyer un message en aval de la console vers le sujet, il affiche

Ce projet n'a aucun sujet

EDIT : J'ai réalisé qu'après avoir associé le sujet, il faut jusqu'à 1 jour pour qu'il apparaisse dans la console Firebase

4 votes

Salut Mohammad. Si cette dernière édition était la solution à votre problème, pouvez-vous la poster comme réponse? S'auto-répondre est totalement acceptable ici sur Stack Overflow, et facilitera la recherche de la solution pour les autres (qui apparemment est d'avoir de la patience :-) ).

0 votes

Fait .. désolé, je pensais que cela violait la politique de Stackoveflow en répondant à vos propres questions dans une réponse séparée

0 votes

Essayez cette réponse... stackoverflow.com/a/37332514/3678308

67voto

Juan Pablo Points 997

Ceci est un chemin alternatif.

Si vous abonnez une application client à un sujet inexistant, le sujet sera également créé sans avoir à appeler une requête d'URL firebase.

Il faudra aussi quelques heures pour apparaître sur la Console Firebase.

En utilisant l'exemple partagé par Google : https://github.com/firebase/quickstart-android/tree/master/messaging vous pouvez le confirmer.

        FirebaseMessaging.getInstance().subscribeToTopic("news");
        Log.d(TAG, "Abonné au sujet des actualités");

1 votes

Merci d'avoir souligné le retard prévu - je pensais qu'il pouvait y avoir un problème avec le client mais je soupçonne que c'est le problème que je rencontre. Santé.

0 votes

Que dois-je faire si un sujet n'apparaît pas même après 2 jours ?

0 votes

@jped Après 3 jours supplémentaires et 100 autres essais et la mise à jour vers la version 4.x, cela a finalement apparu. Je pense vraiment qu'une mise à jour a résolu mon problème.

60voto

Moh'd Awad Points 1153

Tout d'abord, étant donné que IID_TOKEN est votre jeton d'enregistrement et TOPIC_NAME est le sujet que vous souhaitez créer, vous devez créer le sujet en effectuant une demande POST à

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

Et pour vérifier vos sujets créés, effectuez une demande GET sur cette URL

 https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true

et insérez votre API_KEY dans vos en-têtes de demande

Authorization: key=YOUR_API_KEY

Votre sujet prendra jusqu'à 1 jour pour apparaître dans la console Firebase, donc pour les tests, vous pouvez effectuer une requête curl ou utiliser un logiciel comme Advanced REST client

8 votes

Qu'est-ce que le TOKEN D'INSCRIPTION?

9 votes

Fyi: ceci est exactement la même chose que d'appeler subscribeToTopic() depuis un appareil. La logique est toujours la même : un sujet est créé lorsqu'un appareil s'y abonne ou lorsqu'un serveur envoie vers lui.

0 votes

C'est trop long chemin

23voto

Abhishek Points 484

Firebase prend du temps pour créer un nouveau sujet dans la console. Dans mon cas, le nouveau sujet a été créé après 4 heures.

1 votes

Cela n'ajoute pas vraiment quelque chose. La fonction pour s'abonner au sujet a déjà été donnée par l'auteur du post dans la question. L'autre n'a pas, mais ce n'est pas ce qu'il a demandé. Veuillez envisager de modifier votre réponse pour la faire correspondre à la question. Merci!

2 votes

Cela a répondu à ma question. Je m'attendais à ce que ça retentisse instantanément.

23voto

mr.boyfox Points 3704

Vous pouvez créer un sujet avec http api :

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

1. IID_TOKEN = Jeton d'enregistrement de l'appareil, vous pouvez le trouver avec la commande suivante sur votre appareil Android :

String IID_TOKEN = FirebaseInstanceId.getInstance().getToken();

2.TOPIC_NAME = nouveau nom de sujet

3.Authorization: key=YOUR_API_KEY. Définissez ce paramètre dans l'en-tête. Regardez la capture d'écran : Créer un nouveau sujet via Advanced Rest Client

VOTRE_CLE_API : console.firebase.google.com

et envoyez la demande et vous recevrez le statut "OK" en http.

Ensuite, vous pouvez obtenir des informations sur tous vos sujets dans votre projet actuel avec l'api suivante :

https://iid.googleapis.com/iid/info/IID_TOKEN?details=true

ici il faut ajouter la clé d'authentification à l'en-tête de la requête et vous recevrez votre liste de sujets : informations de réponse sur les sujets

Je vous recommande de lire cet article sur l'ID d'instance/Serveur par Google

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X