Créer un slackbot à l'aide de l'API slack bolt et de Node.js

Mou
Slack est un outil de communication d'équipe populaire qui offre une variété d'intégrations et d'extensions pour simplifier le flux de travail de votre équipe . L'une de ces extensions est le Slack Bot , qui permet d'automatiser les tâches et de rendre la communication plus efficace.
Dans ce didacticiel, je vais vous montrer comment créer un bot Slack à l'aide de Bolt, la bibliothèque de Slack pour créer des applications Slack avec node.js qui peuvent interagir avec votre message.
Conditions préalables:
Avant de commencer, assurez-vous que vous disposez des éléments suivants :
· Node.js v12 ou supérieur installé sur votre machine
· npm installé sur votre machine
· Une compréhension de base de JavaScript, Node.js
Étapes Pour installer le bot dans un espace de travail
Créer un nouvel espace de travail Slack
Pour créer un espace de travail Slack, suivez les étapes ci-dessous —
1. Visitez le site Web de Slack et
2. Cliquez sur Créer un nouvel espace de travail
3. Entrez votre adresse e-mail
4. Suivez les instructions à l'écran pour terminer le processus de configuration
5. Cliquez sur le lien de vérification dans l'e-mail pour vérifier votre adresse e-mail et commencer à utiliser votre nouvel espace de travail Slack.
6. Créez des canaux, invitez des membres de l'équipe et envoyez des messages instantanément dans votre espace de travail nouvellement créé.
Créer une nouvelle application Slack
Pour créer une nouvelle application Slack, suivez les étapes ci-dessous -
1. Accédez au site Web de l'API Slack
2. Cliquez sur Créer une application
3. Cliquez sur Créer une nouvelle application
4. Donnez un nom à votre application et sélectionnez l'espace de travail auquel vous souhaitez l'ajouter.
5. Une fois que vous avez fait cela, vous devriez être redirigé vers la page Informations de base de votre application.

oAuth et autorisations
Définissez les autorisations de l'application avant que votre application puisse communiquer avec Slack. Vous devez définir les autorisations de l'application. Pour ce faire, accédez à la page OAuth et autorisations et faites défiler jusqu'aux étendues. Ajoutez les champs d'application suivants à votre application :

Installer l'application dans votre espace de travail
Avec toutes les configurations ci-dessus, l'application peut maintenant être installée dans l'espace de travail. Dans la barre latérale de gauche, accédez à Paramètres → Installer des applications → Installer dans l'espace de travail .

Remarque : La partie installation peut être délicate en raison de problèmes de confidentialité. Chaque organisation définit son processus en interne. Veuillez en tenir compte lors de l'installation de l'application sur le lieu de travail de votre organisation. Vous pouvez également vérifier auprès de votre administrateur Slack les conditions préalables au processus d'installation.
Configuration du serveur Slackbot
Maintenant, écrivons du code. Vous devez configurer un serveur pour Slackbot qui peut gérer les requêtes envoyées pour slackbot. Temps de codage !!
Créez un répertoire avec le nom test-bot
et lancez le npm :
mkdir test-bot && cd test-bot
npm init -y
- slack/bolt : selon sa description, c'est le moyen le plus rapide de commencer à programmer avec la plate-forme Slack
- dotenv : il s'agit d'un module sans dépendance qui charge les variables d'environnement d'un fichier .env dans process.env
yarn add @slack/bolt
yarn add -D dotenv
Avant de communiquer avec le bot, Slack doit d'abord vérifier votre bot avec SIGNING_SECRET
et un BOT_TOKEN
. Les deux doivent être stockés dans le fichier .env afin qu'ils ne soient pas exposés lors de l'utilisation de Git.
- SIGNING_SECRET : Accédez à Informations de base → Informations d'identification de l'application → Signature secrète.
- BOT_TOKEN : accédez à Paramètres → Installer l'application → Jeton oAuth de l'utilisateur du robot.
SLACK_SIGNING_SECRET="YOUR SIGNING SECRET"
SLACK_BOT_TOKEN="YOUR BOT TOKEN"
Créez un fichier appelé index.js
, conservez-le au niveau racine de votre répertoire bot et ajoutez le code suivant :
const { App } = require("@slack/bolt");
require("dotenv").config();
// Initializes your app with credentials
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
});
(async () => {
const port = 3000
await app.start(process.env.PORT || port);
console.log('Bolt app started!!');
})();

Comment slackbot et notre serveur communiquent
Votre application/bot Slack a besoin d'un moyen d'accéder au serveur que vous avez créé sur votre localhost
. Slack a une fonctionnalité appelée mode socket qui permet à Slack d'utiliser les WebSockets pour se connecter à votre serveur d'applications.
Accédez à Paramètres → Informations de base → Jetons de niveau d'application. Cliquez sur le bouton Générer des jetons et des étendues . Donnez un nom à votre jeton et donnez à votre application deux champs d'application disponibles :
- connexions:écriture
- autorisations:lire

Allez ensuite dans Paramètres → Mode Socket . Basculez le commutateur Activer le mode socket . Enfin, allez dans votre index.js
fichier et mettez à jour le code qui initialise votre app
avec socketMode:true
et votre appToken
:
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
socketMode:true, // enable to use socket mode
appToken: process.env.APP_TOKEN
});

Messages dans Slack
Vous pouvez mentionner votre bot ou inclure @ et un texte supplémentaire qui sera envoyé à votre bot sous forme de message.
Dans Slack, les mentions d'applications sont un événement . Vous pouvez également écouter d' autres événements, comme lorsqu'un nouvel utilisateur rejoint un canal, qu'un nouveau canal est créé, etc. Pour permettre à votre bot/application d'écouter les événements, vous devez configurer un abonnement aux événements.
Puisque nous avons activé le mode socket, nous n'avons pas besoin de spécifier une URL explicite.

Maintenant, nous devons donner à l'application des autorisations d'événement. Cliquez sur le menu déroulant S'abonner aux événements du bot et ajoutez l' événement suivant :
Quatre événements sont associés aux messages.
message.channels
: écoute les messages dans les canaux publicsmessage.groups
: écoute les messages dans les canaux privésmessage.im
: écoute les messages dans les DM de votre application avec les utilisateursmessage.mpim
: écoute les messages dans les DM multi-personnes

app.message("hey", async ({ command, say }) => {
try {
say("Hello Human!");
} catch (error) {
console.log("err")
console.error(error);
}
});
Revenez à la page des paramètres de l'application . Sous Fonctionnalités , cliquez sur l' option de menu Accueil de l'application . Faites défiler vers le bas et cochez la case permettant aux utilisateurs d'envoyer des commandes et des messages à partir de l'onglet Messages .

Rechargez Slack en utilisant CMD + R
Si vous êtes sur un Mac et CTRL + R
si vous êtes sur un PC . Maintenant, vous devriez pouvoir envoyer des messages à votre bot.
Revenez à l' test-bot
application et envoyez un message comme @test-bot hey
. Vous devriez obtenir une réponse du bot.

Chaque fois, nous ne pouvons pas vraiment faire correspondre les mots exacts. Nous avons besoin d'un moyen de vérifier si le message qu'un utilisateur envoie à notre bot contient un mot-clé / seulement une partie de celui-ci. Pour cela, Slack nous permet d'utiliser des expressions regex. Par exemple, mettons à jour le bloc de code que nous avons utilisé ci-dessus pour qu'il ressemble à ceci :
// matches any string with RegEx
app.message(/hi/, async ({ command, say }) => {
try {
say("Hello Human!");
} catch (error) {
console.log("err")
console.error(error);
}
});

J'espère que vous avez apprécié la création du bot qui peut écouter votre message et y répondre.
Il existe plusieurs activités que le bot peut effectuer. Tous ceux-ci peuvent être trouvés ici:https://slack.dev/bolt-js/concepts
#slackbot #Javascript #nodejs