Recevoir des messages sur une application client C++

Pour recevoir des messages simples en aval, chaque application client doit implémenter les méthodes sur l'API firebase::messaging::Listener .

Initialiser FCM

Avant de pouvoir utiliser FCM pour accéder à votre jeton d'enregistrement ou recevoir des messages, celui-ci doit être initialisé.

Pour initialiser FCM, appelez ::firebase::messaging::Initialize et fournissez-lui votre objet ::firebase::App ainsi qu'une implémentation de la classe ::firebase::messaging::Listener .

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

Accéder au jeton d'inscription

Au démarrage initial de votre application, le SDK FCM génère un jeton d'enregistrement pour l'instance d'application client. Si vous souhaitez cibler des appareils uniques ou créer des groupes d'appareils pour FCM, vous devrez accéder à ce jeton.

Vous pouvez accéder à la valeur du jeton via la fonction virtuelle ::firebase::messaging::Listener::OnTokenReceived .

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

Recevoir et traiter les messages

Pour recevoir des messages, votre classe Listener doit implémenter la fonction virtuelle OnMessage .

Remplacer OnMessage

En remplaçant la méthode ::firebase::messaging::Listener::OnMessage , vous pouvez effectuer des actions basées sur le message reçu et obtenir les données du message :

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

Les messages peuvent représenter différents types de données entrantes. Le plus souvent, les messages sont envoyés à l'application après avoir été initiés par le développeur. Des messages sont également envoyés à votre application pour représenter les événements de message envoyé, les événements d'erreur d'envoi de message et les événements de messages supprimés. Ces événements spéciaux peuvent être différenciés en vérifiant le champ Message::message_type .

Messages supprimés

Envoyé à votre application lorsque le serveur FCM supprime les messages en attente. Message::message_type sera "deleted_messages" . Les messages peuvent être supprimés pour les raisons suivantes :

  1. Trop de messages stockés sur le serveur FCM.

    Cela peut se produire lorsque les serveurs d'une application envoient un ensemble de messages non réductibles aux serveurs FCM alors que l'appareil est hors ligne.

  2. L'appareil ne s'est pas connecté depuis longtemps et le serveur d'application a récemment (au cours des 4 dernières semaines) envoyé un message à l'application sur cet appareil.

    Il est recommandé que l'application effectue une synchronisation complète avec le serveur d'applications après avoir reçu cet appel.