Notifications Firebase Cloud Messaging (FCM)
Configuration du Compte
Section intitulée « Configuration du Compte »Vous devez d’abord creer un compte pour le service Firebase Cloud Messaging, ou FCM, de Google afin d’utiliser cette integration.
Ensuite, vous accederez a la console de gestion FCM et choisirez le mode que vous souhaitez utiliser pour l’envoi de vos notifications. Les modes disponibles sont legacy et oauth2. Chacun a ses avantages et ses inconvenients. Selon le mode choisi, vous devrez construire votre URL Apprise de maniere legerement differente :

La syntaxe valide est la suivante :
Le mode legacy ne semble pas destine a etre retire prochainement, mais c’est bien ainsi que FCM le designe. Ce mode exige uniquement la cle API generee via la console de gestion FCM.
fcm://{APIKey}/{Device}fcm://{APIKey}/{Device1}/{Device2}/{DeviceN}fcm://{APIKey}/#{Topic}fcm://{APIKey}/#{Topic1}/#{Topic2}/#{TopicN}
Vous pouvez egalement melanger ces entrees :
fcm://{APIKey}/{Device1}/#{Topic1}/
Mode OAuth2
Section intitulée « Mode OAuth2 »Le mode OAuth2 est celui que FCM semble recommander. Il introduit toutefois bien plus de surcharge que la methode legacy. Il exige aussi que vous pointiez vers un fichier JSON genere specialement a partir de votre console de gestion FCM.
Vous pouvez pointer vers le fichier JSON genere localement, si vous l’avez enregistre sur votre machine, ou le referencer via son URL web, si vous le partagez quelque part sur votre reseau, comme ceci :
fcm://{Project}/{Device}/?keyfile=/path/to/keyfilefcm://{Project}/{Device1}/{Device2}/{DeviceN}/?keyfile=https://user:pass@localhost/web/locationfcm://{Project}/#{Topic}/?keyfile=/path/to/keyfilefcm://{Project}/#{Topic1}/#{Topic2}/#{TopicN}/?keyfile=https://user:pass@localhost/web/location
Vous pouvez egalement melanger ces entrees :
fcm://{Project}/{Device1}/#{Topic1}/?keyfile={JSON_KeyFile}
Détail des Paramètres
Section intitulée « Détail des Paramètres »| Variable | Obligatoire | Description |
|---|---|---|
| APIKey | Oui | Cle API generee depuis la console de gestion FCM. Elle n’est requise que si vous souhaitez utiliser la methode Legacy. |
| Project | Oui | Identifiant de projet genere depuis la console de gestion FCM. Il n’est requis que si vous souhaitez utiliser la methode OAuth2. |
| KeyFile | Oui | Emplacement du fichier _JSON Keyfile__ genere depuis la console de gestion FCM. Il n’est requis que si vous souhaitez utiliser la methode OAuth2. |
| Device | Non | Appareil auquel vous souhaitez envoyer votre message. |
| Topic | Non | Sujet sur lequel vous souhaitez publier votre message. |
| mode | Non | Le mode peut etre defini sur legacy ou oauth2. Il est detecte automatiquement selon ce que vous fournissez dans l’URL Apprise, mais vous pouvez aussi le definir explicitement si necessaire. |
| priority | Non | Priorite FCM. Par defaut, elle n’est pas transmise dans la charge utile et laisse donc les valeurs amont s’appliquer. Les options valides sont min, low, normal, high et max. |
| image | Non | Definissez cette valeur sur yes si vous souhaitez inclure une image dans la charge utile. Selon votre abonnement Firebase, cela peut ou non entrainer des frais. Par defaut, cette valeur est no. |
| image_url | Non | Precisez votre propre image_url personnalisee a inclure dans la charge utile. Si cette valeur est fournie, il est suppose que image vaut yes. Vous pouvez aussi definir image=no pour empecher cette supposition. |
| color | Non | Permet d’identifier la couleur de votre notification en fournissant une valeur RGB personnalisee, au format #RRGGBB ou le croisillon # est facultatif. Les autres options sont yes et no. Lorsque cette valeur est no, l’argument color n’est tout simplement pas inclus dans la charge utile. Lorsqu’elle est yes, valeur par defaut, Apprise choisit la couleur selon le type de message, info, warning, etc. |
Remarque : ce service de notification n’utilise pas le champ title ; seul le body est transmis.
Paramètres Globaux
Section intitulée « Paramètres Globaux »| Variable | Description |
|---|---|
| overflow | Ce paramètre peut être défini sur split, truncate ou upstream. Il détermine la manière dont Apprise remet le message que vous lui transmettez. Par défaut, il vaut upstream. 👉 upstream : ne fait aucune modification et transmet le message exactement tel qu’il a été reçu au service.👉 truncate : veille à ce que le message tienne dans la limite amont documentée par le service. Si plus d’informations sont fournies que la limite définie, l’excédent est tronqué.👉 split : similaire à truncate, sauf que si le message dépasse la limite amont documentée par le service, il est découpé en plusieurs morceaux plus petits puis envoyés séquentiellement. |
| format | Ce paramètre peut être défini sur text, html ou markdown. Certains services prennent en charge plusieurs formats de publication du contenu. La valeur par défaut varie selon le service choisi et peut correspondre à l’un de ces trois formats. Vous pouvez facultativement forcer cette option pour vous écarter du comportement par défaut. Si le service ne prend pas en charge plusieurs formats de transmission, ce champ est ignoré. |
| verify | Les requêtes externes vers des emplacements sécurisés, par exemple via https, utilisent des certificats. Par défaut, Apprise vérifie la validité de ces certificats ; si ce n’est pas le cas, aucune notification n’est envoyée à la source. Dans certains cas, un utilisateur ne dispose pas d’une autorité de certification pour valider la clé ou fait simplement confiance à la source ; dans ce cas, vous pouvez définir ce drapeau sur no. Par défaut, il vaut yes. |
| cto | Signifie Socket Connect Timeout. Il s’agit du nombre de secondes pendant lesquelles Requests attend que votre client établisse une connexion avec une machine distante, ce qui correspond à l’appel connect() sur la socket. La valeur par défaut est de 4.0 secondes. |
| rto | Signifie Socket Read Timeout. Il s’agit du nombre de secondes pendant lesquelles le client attend que le serveur envoie une réponse. La valeur par défaut est de 4.0 secondes. |
| emojis | Active la prise en charge des emojis, par exemple :+1: qui sera traduit en 👍. Par défaut, cette option vaut no. Remarque : selon la configuration côté serveur, l’administrateur peut désactiver globalement la prise en charge des emojis ; mais par défaut, ce n’est pas le cas. |
| tz | Identifie le fuseau horaire de la base IANA que vous souhaitez utiliser. Par défaut, celui-ci est détecté à partir de la configuration du serveur qui exécute Apprise. Vous pouvez le définir sur des valeurs comme America/Toronto, ou sur tout autre fuseau correctement formaté correspondant à votre région. |
Exemples
Section intitulée « Exemples »Envoyer une notification FCM Legacy :
# Supposons que notre {APIKey} soit bu1dHSdO22pfaaVy# Supposons que notre {Device} soit ABCD:12345
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "fcm://bu1dHSdO22pfaaVy/ABCD:12345"Envoyer une notification FCM OAuth2 :
# Supposons que notre {Project} soit Apprise# Supposons que le chemin vers notre JSON {Keyfile} soit /etc/apprise/fcm/keyfile.json# Supposons que notre {Device} soit ABCD:12345
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "fcm://Apprise/ABCD:12345/?keyfile=/etc/apprise/fcm/keyfile.json" Questions ou commentaires ?
Documentation
Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .
Problèmes Techniques
Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :