Aller au contenu

Notifications Pushover

Aperçu

Pushover transmet chaque notification via votre compte en ligne aux appareils qui y sont configurés.

Une fois connecté au site web, votre tableau de bord affichera votre {user_key}.

Sur le tableau de bord, après connexion, faites défiler vers le bas pour trouver l’option permettant de générer une application. Une fois cette opération effectuée, un jeton API associé à cette application vous sera fourni. Il deviendra votre {token}.

La syntaxe valide est la suivante :

  • pover://{user_key}@{token}
  • pover://{user_key}@{token}/{device_id}
  • pover://{user_key}@{token}/{device_id1}/{device_id2}/{device_idN}
  • pover://{user_key}@{token}/#{group_key}
  • pover://{user_key}@{token}/{device_id}/#{group_key}
  • pover://{user_key}@{token}?priority={priority}
  • pover://{user_key}@{token}?priority=emergency&expire={expire}&interval={interval}
  • pover://{user_key}@{token}?key={encryption_key}
  • pover://{user_key}@{token}?key={encryption_key}&e2ee=no
VariableObligatoireDescription
user_keyOuiIdentifiant de clé utilisateur associé à votre compte Pushover. Ce n’est pas votre adresse e-mail. Cette clé peut être récupérée depuis votre tableau de bord Pushover.
tokenOuiJeton associé à votre compte Pushover.
device_idNonIdentifiant de l’appareil auquel envoyer la notification. Si aucune valeur n’est précisée, tous les appareils associés à votre compte seront notifiés.
group_keyNonClé d’un groupe de diffusion Pushover, préfixée par #. Les group_key ressemblent aux user_key et permettent de diffuser un message à tous les membres d’un groupe avec une seule clé. Plusieurs groupes peuvent être spécifiés. Les groupes et les appareils peuvent être mélangés dans une même URL.
priorityNonPeut être low, moderate, normal, high ou emergency ; la valeur par défaut est normal si aucune priorité n’est précisée.
Pour envoyer une notification en priorité d’urgence, les paramètres interval et expire devraient être fournis. Vous pouvez aussi utiliser les priorités telles que documentées dans l’API Pushover, où -2 est low, -1 est moderate, 0 est normal, 1 est high et 2 est emergency.
expireNonLe paramètre expire précise pendant combien de secondes votre notification continuera à être retentée, toutes les interval secondes. Si la notification n’a pas été acquittée avant expire secondes, elle sera marquée comme expirée et ne sera plus envoyée. Notez qu’elle reste visible pour l’utilisateur après expiration, mais ne lui demandera plus d’acquittement. Cette valeur ne peut pas dépasser 10800 secondes, soit 3 heures. La valeur par défaut est 3600 secondes, soit 1 heure, si rien n’est précisé.
intervalNonPrécise à quelle fréquence, en secondes, les serveurs Pushover renverront la même notification d’urgence à l’utilisateur. Si l’utilisateur se trouve dans un environnement bruyant ou dort, retenter la notification, avec son et vibration, peut aider à attirer son attention. Cette valeur doit être d’au moins 30 secondes entre deux tentatives. La valeur par défaut est 900 secondes, soit 15 minutes, si rien n’est précisé. Note : ce paramètre est distinct du mécanisme retry d’Apprise, qui contrôle le nombre de tentatives d’envoi en cas d’échec.
soundNonPermet de préciser l’un des effets sonores facultatifs identifiés ici. Le son par défaut est pushover.
urlNonPermet de fournir une URL supplémentaire accompagnée de votre message.
url_titleNonPermet de fournir un titre pour l’URL supplémentaire accompagnée de votre message.
keyNonChaîne hexadécimale de 64 caractères représentant une clé AES 256 bits utilisée pour le chiffrement de bout en bout. Lorsqu’elle est définie, les champs message, title, url et url_title sont chiffrés côté client avant d’être transmis à l’API Pushover. Nécessite le paquet Python cryptography (pip install cryptography). Si le paquet est absent, Apprise envoie le message en texte clair avec un avertissement.
e2eeNonContrôle si le chiffrement de bout en bout est appliqué lorsqu’une key est configurée. La valeur par défaut est yes. Définissez-le sur no pour envoyer temporairement en texte clair même lorsqu’une clé est présente.
VariableDescription
overflowGère les messages qui dépassent la limite documentée d’un service. La valeur par défaut est upstream.
👉 upstream : envoie un seul message sans le découper ni le tronquer selon cette limite.
👉 truncate : conserve la partie qui tient dans la limite et supprime le reste.
👉 split : privilégie une coupure lisible, utilise une coupure stricte si nécessaire, puis envoie toutes les parties dans l’ordre.
Le découpage d’un contenu non déclaré ou structuré reste une solution au mieux. Utilisez upstream si le corps doit rester intact.
formatCe 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é.
verifyLes 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.
redirectPar défaut, Apprise suit les redirections HTTP (réponses 3xx) émises par le serveur distant, conformément au comportement de la bibliothèque requests sous-jacente. Si vous souhaitez empêcher la transmission des en-têtes personnalisés et des identifiants vers des destinations différentes de l’URL d’origine, définissez cette option sur no. Par défaut, elle vaut yes.
ctoSignifie 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.
rtoSignifie 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.
emojisActive 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.
tzIdentifie 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.
retryNombre de tentatives de remise supplémentaires après le premier échec, avant d’abandonner. Accepte un entier compris entre 0 et 10. La valeur par défaut est 0 (aucune nouvelle tentative — une seule tentative est effectuée). Lorsqu’il est combiné avec wait, Apprise marque une pause du nombre de secondes spécifié entre chaque tentative.
waitNombre de secondes à attendre entre les nouvelles tentatives. Accepte une valeur décimale comprise entre 0.0 et 20.0 ; les entiers sont automatiquement convertis en virgule flottante. La valeur par défaut est 0.5. Ce paramètre n’est utile que si retry est supérieur à zéro — un service avec retry=0 effectue exactement une tentative, quelle que soit la valeur de wait.
optionalLorsqu’il est défini sur yes, un échec de remise pour ce service est silencieusement absorbé. Le résultat global de notify() est quand même considéré comme réussi même si ce point de terminaison était injoignable, à condition que tous les services requis (non optionnels) du même lot aient réussi. Ce drapeau ne saute pas la remise ni ne contourne la logique de nouvelles tentatives — toutes les tentatives configurées sont effectuées avant que l’échec soit absorbé. Par défaut, il vaut no, ce qui signifie que chaque échec est propagé à l’appelant.

Lorsque le chiffrement E2EE est activé, le contenu du message est chiffré du côté d’Apprise avant d’être envoyé — les serveurs Pushover ne voient jamais le texte en clair. Seuls les appareils configurés avec la même clé peuvent déchiffrer et afficher les notifications.

Vous créez vous-même la clé de chiffrement. Il s’agit d’une valeur aléatoire de 256 bits représentée sous forme d’une chaîne de 64 caractères hexadécimaux. Exécutez l’une des commandes ci-dessous pour en générer une :

Fenêtre de terminal
python3 -c "import secrets; print(secrets.token_hex(32))"

Copiez la chaîne de 64 caractères affichée. Cette chaîne est votre clé de chiffrement. Conservez-la en lieu sûr — vous en aurez besoin à l’étape suivante et chaque fois que vous configurerez un nouvel appareil.

Étape 2 — Configurer la Clé sur Chaque Appareil Pushover

Section intitulée « Étape 2 — Configurer la Clé sur Chaque Appareil Pushover »

Chaque appareil iOS ou Android devant afficher les notifications déchiffrées doit être configuré avec la même clé. Ouvrez l’application Pushover, accédez à ses Paramètres, et recherchez une option Chiffrement ou Chiffrement de bout en bout. Collez votre clé hexadécimale de 64 caractères dans le champ et enregistrez.

Répétez cette opération sur chaque téléphone ou tablette où vous recevez des notifications Pushover. Tout appareil sans la clé configurée affichera la notification comme du texte chiffré illisible.

Ajoutez ?key= suivi de votre chaîne hexadécimale de 64 caractères à l’URL Pushover :

pover://{user_key}@{token}?key={votre-cle-hexadecimale-64-chars}

Consultez la section Exemples ci-dessous pour une commande complète.

Le chiffrement E2EE requiert le paquet Python cryptography. Installez-le avec :

Fenêtre de terminal
pip install cryptography

Si le paquet n’est pas installé et qu’une key est configurée, Apprise enregistre un avertissement et envoie le message sans chiffrement en solution de repli. Définissez e2ee=no pour envoyer volontairement en texte clair tout en conservant la clé dans l’URL pour une utilisation future.

Normalement, Pushover limite les sons de notification à une liste prédéfinie. Apprise vous permet aussi d’utiliser votre propre son personnalisé, à condition de l’avoir téléversé sur Pushover et de lui avoir donné un nom.

  1. Allez dans Settings -> Alert Settings -> Manage custom sounds -> Upload a sound
  2. Téléversez un son et donnez-lui un nom, par exemple “mysound”.
  3. Vérifiez que le son est accessible et apparaît dans la liste des sons de votre application via https://api.pushover.net/1/sounds.json?token={app-token}
  4. Précisez ensuite ce son dans votre appel pover, par exemple apprise -vv -t "title" -b "test message" pover://user@app?sound=mysound

Vous devriez entendre votre son personnalisé sur la notification. Si le nom du son personnalisé n’est pas trouvé, le son de notification Pushover par défaut sera joué.

Envoyer une notification Pushover à tous nos appareils configurés :

Fenêtre de terminal
# Supposons que notre {user_key} soit 435jdj3k78435jdj3k78435jdj3k78
# Supposons que notre {token} soit abcdefghijklmnop-abcdefg
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
pover://435jdj3k78435jdj3k78435jdj3k78@abcdefghijklmnop-abcdefg

Envoyer une notification Pushover à un groupe de diffusion :

Fenêtre de terminal
# Supposons que notre {user_key} soit 435jdj3k78435jdj3k78435jdj3k78
# Supposons que notre {token} soit abcdefghijklmnop-abcdefg
# Supposons que notre {group_key} soit gznej3rKEVAvPUxu9vvNnqpmZpokzF
# Le préfixe # l'identifie comme une group key
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
"pover://435jdj3k78435jdj3k78435jdj3k78@abcdefghijklmnop-abcdefg/#gznej3rKEVAvPUxu9vvNnqpmZpokzF"

Envoyer une notification Pushover avec la priorité Emergency :

Fenêtre de terminal
# La priorité Emergency recommande aussi de préciser les valeurs
# expire et interval (intervalle de relance d'urgence).
# Supposons que notre {user_key} soit 435jdj3k78435jdj3k78435jdj3k78
# Supposons que notre {token} soit abcdefghijklmnop-abcdefg
# L'exemple ci-dessous définit une expiration de 1 heure et tente
# de renvoyer le message toutes les 10 minutes :
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
pover://435jdj3k78435jdj3k78435jdj3k78@abcdefghijklmnop-abcdefg?priority=emergency&interval=600&expire=3600

Envoyer une notification Pushover chiffrée de bout en bout :

Fenêtre de terminal
# Supposons que notre {user_key} soit 435jdj3k78435jdj3k78435jdj3k78
# Supposons que notre {token} soit abcdefghijklmnop-abcdefg
# Supposons que notre clé de chiffrement hexadécimale de 64 chars soit aabbcc...
# (générez-en une avec les commandes de la section ci-dessus)
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
"pover://435jdj3k78435jdj3k78435jdj3k78@abcdefghijklmnop-abcdefg?key=aabbccdd11223344aabbccdd11223344aabbccdd11223344aabbccdd11223344"
Questions ou commentaires ?

Documentation

Vous avez repéré une faute de frappe ou une erreur ?

Problèmes Techniques

Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :

Conçu avec amour depuis le Canada