Notifications Matrix
Configuration du compte
Section intitulée « Configuration du compte »Par défaut, Apprise communique directement avec votre serveur Matrix via l’API Client officielle.
Vous pouvez aussi utiliser le mode webhook à la place de l’API Client Matrix. Ce mode est activé en précisant ?mode=matrix, ?mode=slack ou ?mode=hookshot, selon le service webhook que vous avez configuré.
La syntaxe valide est la suivante :
Avec un nom d’utilisateur et un mot de passe :
matrix://{user}:{password}@{hostname}/#{room_alias}matrixs://{user}:{password}@{hostname}/!{room_id}
Avec un jeton d’accès pré-généré, sans nom d’utilisateur ni mot de passe :
matrix://{token}@{hostname}/#{room_alias}matrixs://{token}@{hostname}/!{room_id}
Vous pouvez aussi fournir le jeton en paramètre de requête :
matrixs://{hostname}/#{room_alias}?token={token}
Cibles de type Alias de Salon
Section intitulée « Cibles de type Alias de Salon »Les alias de salon sont préfixés par #. Vous pouvez en préciser plusieurs en les séparant par des slashs :
matrixs://{user}:{password}@{hostname}/#{room_alias}matrixs://{user}:{password}@{hostname}/#{room_alias1}/#{room_alias2}matrixs://{token}@{hostname}/#{room_alias1}/#{room_alias2}
Cibles de type Room ID
Section intitulée « Cibles de type Room ID »Les identifiants de salon sont préfixés par !. Vous pouvez en préciser plusieurs de la même manière :
matrixs://{user}:{password}@{hostname}/!{room_id}matrixs://{user}:{password}@{hostname}/!{room_id1}/!{room_id2}matrixs://{token}@{hostname}/!{room_id1}/!{room_id2}
Cibles de type Message Direct
Section intitulée « Cibles de type Message Direct »Pour envoyer un message direct, DM, à un utilisateur Matrix, préfixez la cible avec @. Vous pouvez aussi inclure explicitement le homeserver dans la cible :
matrixs://{user}:{password}@{hostname}/@{target_user}matrixs://{user}:{password}@{hostname}/@{target_user}:{homeserver}matrixs://{token}@{hostname}/@{target_user}matrixs://{token}@{hostname}/@{target_user}:{homeserver}
Vous pouvez notifier plusieurs utilisateurs en DM dans une seule URL :
matrixs://{user}:{password}@{hostname}/@{user1}/@{user2}matrixs://{token}@{hostname}/@{user1}/@{user2}
Mélanger les Types de Cibles
Section intitulée « Mélanger les Types de Cibles »Les alias de salon (#), les room IDs (!) et les utilisateurs DM (@) peuvent être librement combinés dans n’importe quel ordre au sein d’une même URL :
matrixs://{user}:{password}@{hostname}/#{room_alias}/@{target_user}matrixs://{user}:{password}@{hostname}/#{room_alias}/!{room_id}/@{target_user}matrixs://{token}@{hostname}/#{room_alias}/!{room_id}/@{target_user}
Identifiants de Salon et Comportement du Homeserver
Section intitulée « Identifiants de Salon et Comportement du Homeserver »Matrix prend en charge à la fois :
- les alias de salon préfixés par
#; - les room IDs préfixés par
!.
Les identifiants de salon peuvent inclure un composant homeserver, par exemple :example.com. Dans Matrix, les alias de salon sont souvent écrits avec un homeserver, et les room IDs sont eux aussi généralement attendus sous cette forme.
Exemples:
#general#general:example.com!abc123!abc123:example.com
Comportement par Défaut (Recommandé)
Section intitulée « Comportement par Défaut (Recommandé) »Par défaut, Apprise impose la présence d’un homeserver sur les identifiants de salon lorsqu’il manque.
Si vous fournissez :
#room: il est interprete en interne comme#room:{hostname}!room: il est interprete en interne comme!room:{hostname}
Si vous incluez explicitement un homeserver, Apprise le respecte exactement tel quel.
Désactivation de ce Comportement (Mode Compatibilité)
Section intitulée « Désactivation de ce Comportement (Mode Compatibilité) »Vous pouvez désactiver cette contrainte en précisant ?hsreq=no. Dans ce cas :
#roomest utilise exactement tel qu’il est fourni.!roomest utilise exactement tel qu’il est fourni.
hsreq ne s’applique qu’aux identifiants de salon, c’est-à-dire # et !. Les cibles DM de type @ ne sont pas concernées : elles utilisent toujours le homeserver authentifié lorsqu’aucun homeserver explicite n’est présent.
Ce mode est destiné aux environnements où un reverse proxy, un comportement serveur non standard ou un routage URL strict rend l’ajout du suffixe :homeserver indésirable.
Si vous utilisez des room IDs préfixés par !, notez que de nombreuses installations Matrix attendent des identifiants complètement qualifiés. Si votre serveur rejette !room:{hostname} mais accepte !room tel quel, hsreq=no peut être nécessaire.
Par exemple, avec :
matrix://user:pass@localhost/#room/!abc123Avec le comportement par défaut, hsreq=yes :
#roomdevient#room:localhost!abc123devient!abc123:localhost
Avec la contrainte désactivée :
matrix://user:pass@localhost/#room/!abc123?hsreq=no#roomest utilise comme#room!abc123est utilise comme!abc123
Dans les deux cas, une cible DM comme @alice deviendrait @alice:localhost, quelle que soit la valeur de hsreq.
Mode Webhook
Section intitulée « Mode Webhook »Lorsque vous précisez l’argument ?mode=, le plugin bascule entièrement en comportement webhook et la syntaxe change :
matrix://{user}:{token}@{hostname}?mode=matrixmatrixs://{token}@{hostname}:{port}?mode=matrixmatrix://{user}:{token}@{hostname}?mode=slack&format=markdownmatrixs://{token}@{hostname}?mode=slack&format=markdownmatrix://{user}:{token}@{hostname}?mode=hookshotmatrixs://{user}:{token}@{hostname}?mode=hookshot&path=/webhook
Avec matrix-hookshot, le chemin du webhook est configurable et vaut /webhook par défaut :
matrixs://{user}:{token}@{hostname}?mode=hookshotmatrixs://{user}:{token}@{hostname}?mode=hookshot&path=/public-hooks
Si vous utilisez t2bot.io, vous pouvez utiliser :
matrix://{t2bot_webhook_token}matrix://{user}@{t2bot_webhook_token}
Ou directement :
https://webhooks.t2bot.io/api/v1/matrix/hook/{t2bot_webhook_token}
Détail des Paramètres
Section intitulée « Détail des Paramètres »| Variable | Requis | Description |
|---|---|---|
| hostname | *Oui | Le serveur Matrix auquel vous souhaitez vous connecter. |
| t2bot_webhook_token | *Oui | Utilisé en mode webhook t2bot. Dans ce cas, il tient lieu de nom d’hôte. |
| user | Non | L’utilisateur à authentifier, et éventuellement à enregistrer, auprès du serveur Matrix. |
| password | Non | Le mot de passe à utiliser pour l’authentification, et éventuellement l’enregistrement, auprès du serveur Matrix. |
| token | Non | Jeton d’accès Matrix pré-généré. Utilisez-le à la place de user et password lorsque votre serveur désactive la connexion par mot de passe, par exemple dans un déploiement SSO uniquement. Peut aussi être fourni avec ?token=. Lorsqu’il est utilisé sans nom d’utilisateur, placez-le dans la position utilisateur : matrix://{token}@{hostname}/. |
| port | Non | Port sur lequel le serveur Matrix écoute. Par défaut, matrixs:// utilise le port 443 tandis que matrix:// utilise le port 80. |
| room_alias | Non | Alias du salon à rejoindre et notifier. Il est recommandé de le préfixer avec #. |
| room_id | Non | Identifiant du salon à rejoindre et notifier. Il doit être préfixé avec !. |
| thumbnail | Non | Affiche une image avant chaque notification pour représenter le type de notification. La valeur par défaut est False. |
| mode | Non | Active le mode webhook. Les valeurs valides sont matrix, slack, t2bot et hookshot. |
| path | Non | Utilisé avec le mode hookshot pour définir le chemin webhook public. La valeur par défaut est /webhook. Par exemple, si votre instance hookshot est exposée à https://hookshot.example/public-hooks/{token}, alors utilisez ?mode=hookshot&path=/public-hooks. |
| msgtype | Non | Type de message Matrix : text ou notice. La valeur par défaut est text. |
| version | Non | Surcharge la version de l’API Client Matrix. Les valeurs prises en charge sont 2 et 3. La valeur par défaut est 3. Peut aussi être fournie avec ?v=. |
| hsreq | Non | Lorsqu’il est activé, ce qui est le cas par défaut, Apprise ajoute automatiquement le homeserver authentifié aux identifiants de salon qui n’en contiennent pas déjà un. Par exemple, #room devient #room:hostname. Définissez no pour désactiver ce comportement et utiliser les identifiants exactement tels qu’ils sont fournis. |
| e2ee | Non | Contrôle le chiffrement de bout en bout via le protocole Matrix Olm/MegOLM. Lorsqu’il est activé, ce qui est le cas par défaut, Apprise détecte automatiquement si chaque salon est configuré pour le chiffrement et chiffre alors les messages comme les pièces jointes pour ceux qui le prennent en charge, tout en envoyant les autres en texte brut. Lorsqu’Apprise crée un nouveau salon avec e2ee=yes, il définit l’état m.room.encryption dès la création afin que le salon soit chiffré dès le premier message. Cela exige le paquet Python cryptography et une connexion matrixs://. Non pris en charge en mode webhook. Définissez no pour toujours envoyer en clair et éviter la création de salons E2EE. La valeur par défaut est yes. |
| target_user | Non | Identifiant utilisateur Matrix à notifier en message direct. Doit être préfixé par @, par exemple @alice ou @alice:homeserver. Apprise cherche, ou crée, automatiquement un salon DM avec cet utilisateur. Non pris en charge en mode webhook. |
| discovery | Non | Lorsqu’elle est activée, ce qui est le cas par défaut, Apprise effectue une recherche .well-known/matrix/client au premier usage pour résoudre l’URL de base réelle du homeserver. Définissez no pour désactiver cette découverte et vous connecter directement au nom d’hôte fourni. Désactivé automatiquement en mode webhook. La valeur par défaut est yes. |
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 Matrix sécurisée avec nom d’utilisateur et mot de passe :
# Supposons que {hostname} soit matrix.example.com# Supposons que {user} soit nuxref# Supposons que {password} soit abc123# Notifier #general et #appriseapprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ matrixs://nuxref:abc123@matrix.example.com/#general/#appriseEnvoyer une notification avec un jeton d’accès pré-généré, pratique lorsque la connexion par mot de passe est désactivée sur le serveur :
# Supposons que {hostname} soit matrix.example.com# Supposons que {token} soit syt_abc123...apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "matrixs://syt_abc123@matrix.example.com/#general"Desactiver l’imposition du homeserver :
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ matrixs://nuxref:abc123@matrix.example.com/!abc123?hsreq=noUtiliser l’API v2, requise pour les pièces jointes sur certains déploiements :
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ matrixs://nuxref:abc123@matrix.example.com/#general?v=2E2EE est activé par défaut lorsque le paquet cryptography est installé et que le salon le prend en charge. Pour désactiver explicitement E2EE et toujours envoyer en clair :
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "matrixs://nuxref:abc123@matrix.example.com/#general?e2ee=no"Envoyer un message direct a un utilisateur Matrix :
# Supposons que {hostname} soit matrix.example.com# Supposons que {user} soit nuxref, et {password} abc123# Envoyer un MP a @bob sur le meme homeserverapprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ matrixs://nuxref:abc123@matrix.example.com/@bobEnvoyer un message direct avec un jeton d’accès pré-généré :
# Supposons que {hostname} soit matrix.example.com# Supposons que {token} soit syt_abc123...apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "matrixs://syt_abc123@matrix.example.com/@bob"Envoyer une requête webhook t2bot.io :
# Supposons que {webhook} soit ABCDEFG12345apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ matrix://ABCDEFG12345Envoyer une requête webhook matrix-hookshot :
# Supposons que {hostname} soit hookshot.example.com# Supposons que {token} soit ABCDEFG12345apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "matrixs://apprise:ABCDEFG12345@hookshot.example.com?mode=hookshot"Si votre instance hookshot est exposée derrière un chemin webhook public personnalisé :
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ "matrixs://apprise:ABCDEFG12345@hookshot.example.com?mode=hookshot&path=/public-hooks" 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 :