Slack
L’Integrator publie les alertes dans Slack avec la methode Web API chat.postMessage, en tant qu’app Slack (bot). Il vous faut le jeton bot de l’app (xoxb-...) et le canal de destination.
https://hooks.slack.com/...). Une URL de webhook dans le champ jeton ne fonctionne pas : utilisez un jeton bot.
Etape 1 : creer l’app Slack
Il faut le droit d’installer des apps dans l’espace de travail Slack (ou un admin qui approuve la demande).
- Allez sur api.slack.com/apps et cliquez sur Create New App → From scratch (affiche Blank app dans la nouvelle presentation).
- Nommez-la, par exemple
Mugnsoft, choisissez votre workspace et cliquez sur Create App. - Dans le menu de gauche, ouvrez OAuth & Permissions. Sous Scopes → Bot Token Scopes, cliquez sur Add an OAuth Scope et ajoutez :
chat:write- obligatoire, pour publier des messages ;chat:write.public- optionnel, pour publier dans les canaux publics sans y inviter l’app.
- Remontez en haut de OAuth & Permissions et cliquez sur Install to Workspace, puis Allow.
- Copiez le Bot User OAuth Token. Il commence par
xoxb-.
Guide officiel : Slack - Quickstart with app settings. Reference des scopes : chat:write, chat:write.public.
Etape 2 : choisir le canal et y inviter l’app
- Dans Slack, ouvrez le canal, puis son nom → About (ou Channel details). Le Channel ID (
C0123ABCD45) est en bas. - Invitez l’app : tapez
/invite @Mugnsoftdans le canal.
Utilisez l’ID du canal plutot que son nom : il resiste a un renommage et il est obligatoire pour les canaux prives. Un canal prive exige toujours l’invitation, meme avec chat:write.public.
Etape 3 : configurer Mugnsoft
Par defaut pour tous les moniteurs d’un Integrator - Integrator → General → Notifications → Slack : activez On fail et/ou On change, puis renseignez Default channel (l’ID du canal) et Default token (le jeton xoxb-).
Par moniteur - moniteur → Actions → carte Slack : activez le ou les declencheurs. Laissez Channel et Token vides pour utiliser les defauts de l’Integrator, ou renseignez l’un des deux : un moniteur peut publier dans son propre canal avec le jeton de l’Integrator.
Enregistrez les deux formulaires avec l’icone disquette. Voir Comment une alerte arrive jusqu’a quelqu’un pour les interrupteurs concernes.
Ce qui est publie
Un message avec une barre laterale dans la couleur du statut : le titre avec un emoji de statut, les faits (type, statut et duree, cible, sonde, heure du controle), le message de la sonde, un bouton Locate in 3D view et la raison de l’envoi. Les notifications mobiles et bureau affichent le titre.
Tester
Depuis Mugnsoft - dans le bloc Notifications de l’Integrator, cliquez sur ⚡ sur la carte Slack. L’Integrator publie un message [TEST] Mugnsoft notification test avec le canal et le jeton des champs (ou ses defauts enregistres) et renvoie l’erreur Slack s’il y en a une (tableau ci-dessous).
A la main - le meme appel API que l’Integrator, depuis la machine de l’Integrator :
curl -s -X POST https://slack.com/api/chat.postMessage \
-H "Authorization: Bearer xoxb-votre-jeton" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"channel":"C0123ABCD45","text":"Message de test Mugnsoft"}'
Sous Windows, lancez-le dans cmd ou appelez curl.exe depuis PowerShell. Slack repond "ok":true et le message apparait dans le canal. Sinon, le champ error en donne la raison (tableau ci-dessous).
Lancez ensuite le test de bout en bout.
Depannage
L’Integrator journalise l’erreur Slack (sendMsgSlack - [moniteur] - all 3 attempts failed: <erreur>).
| Erreur Slack | Cause et action |
|---|---|
not_in_channel |
L’app n’est pas membre du canal : /invite @Mugnsoft, ou ajoutez chat:write.public (canaux publics uniquement) et reinstallez. |
channel_not_found |
ID ou nom de canal errone, ou canal prive dans lequel l’app n’a pas ete invitee. |
invalid_auth / not_authed |
Jeton errone ou revoque, ou URL de webhook a la place d’un jeton bot. |
token_revoked / account_inactive |
L’app a ete desinstallee ou la personne qui l’a installee a quitte l’espace : reinstallez-la et mettez le jeton a jour. |
missing_scope |
chat:write manque : ajoutez-le et reinstallez l’app (les scopes ne s’appliquent qu’apres reinstallation). |
ratelimited |
Trop de messages : une regle ON FAIL for 0 checks sur de nombreux moniteurs publie a chaque controle. Utilisez for N checks ou ON CHANGE. |
Reference des erreurs : chat.postMessage. Plus d’elements dans Depannage.