Notifications Mattermost
Configuration du Compte
Section intitulée « Configuration du Compte »Pour utiliser ce plugin, vous devez d’abord disposer d’une instance http://mattermost.com. Téléchargez leur logiciel et configurez-le.
Ce plugin prend en charge 2 styles d’intégration distincts :
- Webhooks entrants (par défaut), qui publient vers
/hooks/<webhook_token>. - Publication robot (API REST) (
mode=bot), qui publie vers/api/v4/postsà l’aide d’un jeton d’accès (robot ou utilisateur).
Configuration du Webhook Entrant (par défaut)
Section intitulée « Configuration du Webhook Entrant (par défaut) »Vous aurez besoin d’un *webhook entrant. Vous pouvez le configurer comme suit :
- Cliquez sur l’option Integrations dans le menu déroulant du canal, puis sélectionnez Incoming Webhook :

- À partir de là, sélectionnez Add Incoming Webhook :

- Enfin, vous pourrez personnaliser le comportement du webhook, puis cliquer sur Save en bas de la page une fois terminé.

L’URL fournie peut ressembler à ceci :
# The URL provided by Mattermost:http://localhost:8065/hooks/yokkutpah3r3urc5h6i969yima ^ ^ ^ | | | hostname port webhook token
# From here you can do the following to generate your Apprise URL:# - http:// becomes mmost://# - drop /hooks reference# Which gets you:mmost://localhost:8065/yokkutpah3r3urc5h6i969yimaPublication en Mode Robot
Section intitulée « Publication en Mode Robot »Si vous voulez que le message soit attribué à un compte robot (ou à un utilisateur précis), vous devez utiliser la publication via l’API REST Mattermost :
POST /api/v4/postsAuthorization: Bearer <bot_access_token>- charge utile JSON contenant
channel_idetmessage
Les incoming webhooks ne s’authentifient pas comme une session utilisateur ; ils ne peuvent donc pas réellement publier en tant que compte robot. Vous pouvez toujours définir un nom d’affichage en mode webhook, mais cela dépend des réglages du serveur Mattermost autorisant les surcharges.
En mode robot, vous pouvez cibler les canaux de deux manières :
- Fournir un
channel_iddirectement (méthode recommandée). - Fournir uniquement
#channel_namelorsqu’un nom d’équipe est également fourni, car Apprise doit effectuer une résolution pour traduire#channel_nameenchannel_id.
Pièces Jointes (Mode Robot Uniquement)
Section intitulée « Pièces Jointes (Mode Robot Uniquement) »Les pièces jointes ne sont prises en charge qu’en mode robot. Apprise envoie
d’abord chaque fichier vers /api/v4/files (une requête par fichier et par canal),
puis inclut les identifiants de fichiers renvoyés dans la charge utile du post.
Mode Webhook (par Défaut)
Section intitulée « Mode Webhook (par Défaut) »La syntaxe valide est la suivante :
mmost://{hostname}/{token}mmost://{hostname}:{port}/{token}mmost://{botname}@{hostname}/{token}mmost://{botname}@{hostname}:{port}/{token}mmost://{hostname}/{path}/{token}mmost://{hostname}:{port}/{path}/{token}mmost://{botname}@{hostname}/{path}/{token}mmost://{botname}@{hostname}:{port}/{path}/{token}
Les connexions sécurisées (via https) doivent utiliser mmosts://, tandis
que les connexions non sécurisées (via http) doivent utiliser mmost://.
Les deux suivent la même structure.
Le mode webhook peut être utilisé avec ou sans canaux :
- Si des canaux sont fournis, Apprise inclura
"channel"dans la charge utile. - Si aucun canal n’est fourni, Apprise n’inclura pas
"channel", et Mattermost utilisera les paramètres par défaut configurés dans le webhook.
Mode Robot (mode=bot)
Section intitulée « Mode Robot (mode=bot) »Le mode robot utilise la même syntaxe d’URL de base, avec ces particularités :
{token}est un jeton d’accès (jeton robot ou jeton utilisateur) ;- vous devez fournir une ou plusieurs cibles via
to=ouchannels=; imageeticon_urlne s’appliquent pas dans ce mode.
Si aucun nom d’équipe n’est fourni, les cibles de type #channel_name sont ignorées.
Exemples :
mmosts://{hostname}/{access_token}?mode=bot&to={channel_id}mmosts://{hostname}/{access_token}?mode=bot&to={id1},{id2}mmosts://{team}@{hostname}/{access_token}?mode=bot&to=#generalmmosts://{hostname}/{access_token}?mode=bot&team={team}&to=#generalmmosts://{hostname}:{port}/{path}/{access_token}?mode=bot&to={channel_id}
Détail des Paramètres
Section intitulée « Détail des Paramètres »| Variable | Requis | Description |
|---|---|---|
| hostname | Oui | Le serveur sur lequel Mattermost écoute. |
| token | Oui | Mode webhook : jeton de webhook entrant. Mode robot : jeton d’accès robot ou utilisateur (jeton Bearer). |
| port | Non | Le port sur lequel Mattermost écoute. S’il est omis, Apprise utilise le port par défaut associé au schéma, par exemple 443 pour mmosts://. De nombreuses installations Mattermost utilisent le port 8065, indiquez-le si nécessaire. |
| path | Non | Vous pouvez préciser un sous-chemin si besoin. Le dernier élément du chemin doit être le token. |
| botname | Non | Mode webhook uniquement. Surcharge le nom d’affichage du message webhook (champ username de la charge utile). Requiert le réglage administrateur Mattermost “Enable integrations to override usernames”. Non applicable en mode robot, où les messages apparaissent sous le nom du robot. |
| team | Non | Mode robot uniquement. Nom d’équipe utilisé pour résoudre les cibles #channel_name en identifiants de canaux. Peut aussi être fourni dans la partie utilisateur de l’URL ({team}@{hostname}). Non applicable en mode webhook. |
| image | Non | Mode webhook uniquement. Inclut l’image d’état Apprise. Ignoré si icon_url est défini. |
| icon_url | Non | Mode webhook uniquement. Surcharge l’icône d’avatar avec une URL personnalisée. Requiert le réglage administrateur Mattermost “Enable integrations to override profile picture icons”. |
| channels | Non | Mode webhook : noms de canaux. Mode robot : identifiants de canaux (ou #channel_name si team est fourni). Vous pouvez fournir une liste séparée par des virgules. |
| channel | Non | Alias de channels. |
| to | Non | Alias de channels. Utile dans une configuration YAML où to: existe déjà. |
| mode | Non | webhook (par défaut) ou bot. |
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 Mattermost sécurisée à notre serveur via un webhook :
# Assuming our {hostname} is mattermost.server.local# Assuming our {token} is 3ccdd113474722377935511fc85d3dd4
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ mmosts://mattermost.server.local/3ccdd113474722377935511fc85d3dd4Envoyer une notification Mattermost sécurisée à notre serveur tournant sur le port TCP 8065 :
# Assuming our {hostname} is mattermost.server.local# Assuming our secure {port} our server is running on is 8065# Assuming our {token} is 3ccdd113474722377935511fc85d3dd4
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ mmosts://mattermost.server.local:8065/3ccdd113474722377935511fc85d3dd4Envoyer une notification Mattermost non sécurisée à un serveur en visant des canaux spécifiques :
# Assuming our {hostname} is mattermost.server.local# Assuming our {token} is 3ccdd113474722377935511fc85d3dd4# Assuming our {channels} is #support and #general
# We don't need to provide the '#' (hashtag) prefix:apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ mmost://mattermost.server.local/3ccdd113474722377935511fc85d3dd4?channels=support,generalEnvoyer une notification webhook avec un nom d’affichage personnalisé (botname) :
# Assuming our {hostname} is mattermost.server.local# Assuming our {token} is 3ccdd113474722377935511fc85d3dd4# Assuming our desired display name is mybot
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ 'mmosts://mybot@mattermost.server.local/3ccdd113474722377935511fc85d3dd4'Publier en tant que bot dans un identifiant de canal spécifique :
# Assuming our {access_token} is abcd1234# Assuming our {channel_id} is f6g7ha13d4e58ib2c9aaapprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ 'mmosts://mattermost.server.local/abcd1234?mode=bot&to=f6g7ha13d4e58ib2c9aa'Publier en tant que bot dans plusieurs identifiants de canaux :
# Assuming our {access_token} is abcd1234# Assuming our {channel_ids} are a1b2c3d4e5f6g7h8i9j0 and f6g7ha13d4e58ib2c9aaapprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ 'mmosts://mattermost.server.local/abcd1234?mode=bot&to=a1b2c3d4e5f6g7h8i9j0,f6g7ha13d4e58ib2c9aa'Publier en tant que bot en utilisant la résolution #channel_name (équipe requise) :
# Assuming our {access_token} is abcd1234# Assuming our {team} is myteam# Assuming our {channel_name} is general
# Team provided via URL user portion:apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ 'mmosts://myteam@mattermost.server.local/abcd1234?mode=bot&to=#general'
# Team provided via query string:apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \ 'mmosts://mattermost.server.local/abcd1234?mode=bot&team=myteam&to=#general'Envoyer un message bot avec une pièce jointe :
# Assuming our {access_token} is abcd1234# Assuming our {channel_id} is f6g7ha13d4e58ib2c9aa# Assuming the file to attach is /path/to/report.pdf
apprise -vv -t "Rapport" -b "Voir ci-joint." \ --attach /path/to/report.pdf \ 'mmosts://mattermost.server.local/abcd1234?mode=bot&to=f6g7ha13d4e58ib2c9aa' 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 :