Agence web » Actualités du digital » Comment envoyer un message à Slack à partir d'un script Bash

Comment envoyer un message à Slack à partir d'un script Bash

À l'aide de quelques webhooks, vous pouvez transformer Slack en un centre de notification pour votre ligne de commande. Vous pouvez faire beaucoup de choses avec cela, des simples flux de messages aux intégrations Slack personnalisées pour votre application.

Ce type d'intégration fonctionne particulièrement bien pour les événements basés sur les notifications, comme lorsque quelque chose est mis à jour ou qu'un nouveau contenu est mis en ligne quelque part, comme le fonctionnement des flux RSS. Vous pouvez également créer des intégrations personnalisées pour vos propres applications qui fonctionnent sur la même API, y compris même des boîtes de dialogue et des menus interactifs pour obtenir une entrée utilisateur.

Utilisez un Bot lâche avec des Webhooks

Slack possède une API qui vous permet d'automatiser de nombreuses interactions avec votre espace de travail. Vous pouvez accéder à cette API de n'importe où qui vous permet de faire des requêtes HTTP comme POST et GET, qui inclut des scripts bash utilisant le curl utilitaire, ainsi que la plupart des langages de script. le curl l'utilitaire est installé par défaut sur presque toutes les distributions Unix, et il est disponible en téléchargement sur Windows.

Une partie de cette API comprend des webhooks, un moyen pour deux applications de s’envoyer des messages. Vous recevrez une URL de webhook que vous pourrez créer POST demande à, avec certaines données sous la forme d'un objet JSON. Par exemple, vous pouvez envoyer un message rapide avec:

{"text":"Hello, World!"}

Votre script bash enverra ce bit de données à Slack, qui le lira et enverra "Bonjour, monde!" au canal que vous spécifiez lorsque vous configurez le webhook.

Vous devrez utiliser votre propre application Slack, de sorte que le message proviendra d'un bot (que vous pouvez personnaliser). C'est en fait une bonne chose; les webhooks sont principalement utilisés pour les notifications, et comme un message envoyé via un webhook ne sera pas envoyé depuis votre propre compte, vous recevrez des notifications push pour les messages envoyés de cette façon.

Vous pouvez également envoyer des messages automatisés à partir de votre propre compte Slack de la même manière, sauf que vous devrez utiliser l'API chat.postMessage avec le as_user argument défini sur true. Cela nécessitera un jeton OAuth 2.0 avec le chat:write:user étendue de l'autorisation, que vous devrez générer vous-même avant d'utiliser l'API. Nous vous suggérons de vous en tenir aux webhooks, car ils sont beaucoup plus faciles à gérer.

Configurer une application Slack pour accepter les webhooks

Accédez au portail API de Slack et créez une nouvelle application Slack. Attribuez un nom d'utilisateur à cette application, sélectionnez l'espace de travail auquel elle appartiendra et appuyez sur «Créer une application».

Vous serez redirigé vers une page d'accueil où vous pourrez ajouter des fonctionnalités à votre robot. Il y a beaucoup de trucs sympas ici, comme des custom /commands et des messages interactifs, mais tout ce dont vous avez besoin en ce moment est "Webhooks entrants". Cliquez sur ce bouton et activez-le.

Vous devrez enregistrer un nouveau webhook auquel votre application pourra envoyer des messages. Cliquez sur «Ajouter un nouveau Webhook à l'espace de travail» au bas de cet écran.

Il vous sera demandé d'autoriser l'application et de sélectionner le canal pour les messages. Il peut s'agir de canaux publics ou de messages directs avec d'autres utilisateurs; vous verrez tous les deux le bot dans vos DM et recevrez des notifications.

Vous pouvez enregistrer plusieurs webhooks pour différentes chaînes, mais chaque hook aura une URL différente.

Copiez l'URL de votre webhook et ouvrez votre terminal. Coller:

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' YOUR_WEBHOOK_URL

Remplacement YOUR_WEBHOOK_URL avec celui que Slack vous a donné. Appuyez sur Entrée et vous devriez recevoir un "Bonjour, monde!" notification et voir un nouveau message dans le canal que vous avez choisi.

Vous pouvez utiliser ceci curl depuis un script bash, et vous pouvez configurer l'objet JSON pour envoyer toutes les données que vous souhaitez, y compris à partir des variables bash.

Utilisation de messages et de pièces jointes formatés

L'API de message peut faire plus que simplement envoyer du texte simple. Si vous souhaitez que vos messages soient plus stylisés, vous devrez ajouter des paramètres supplémentaires à l'objet JSON qui curl envoie.

Vous pouvez utiliser le démarquage et d'autres formats simples de la même manière que vous le feriez dans la boîte de message de Slack. Une chose à noter cependant, c'est que pour créer des liens vers des canaux et des utilisateurs @ing, vous devrez spécifier l'ID de canal et l'ID utilisateur plutôt que les noms en clair, sinon cela ne fonctionnera pas.

Pour tout le reste, vous voudrez utiliser le générateur de kit de blocs de Slack, un éditeur WYSIWYG pour les messages Slack qui vous permet de créer du contenu interactif et richement incorporé, et gère même la création du JSON pour vous. Des éléments tels que les boutons et les menus peuvent être configurés pour envoyer des demandes POST à ​​une URL que vous spécifiez, permettant à vos utilisateurs de répondre à l'application qui envoie le message.

Le générateur de kit de blocs n'est cependant pas entièrement nécessaire, car les anciennes méthodes ne sont pas obsolètes. Si vous souhaitez simplement utiliser des fonctionnalités telles que les pièces jointes, vous pouvez utiliser l'ancien Générateur de messages pour créer et prévisualiser le JSON.

★★★★★