{"id":71830,"date":"2023-08-10T14:48:53","date_gmt":"2023-08-10T13:48:53","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=71830&#038;preview=true&#038;preview_id=71830"},"modified":"2023-11-10T13:06:39","modified_gmt":"2023-11-10T12:06:39","slug":"construire-slackbot-nodejs-api-kinsta-gesion-site","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/","title":{"rendered":"Comment construire un Slackbot avec Node.js et l&rsquo;API Kinsta pour la gestion de site"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/comment-utiliser-slack\/\">Slack<\/a> est une plateforme de messagerie puissante qui permet aux \u00e9quipes de collaborer efficacement. Et si cette collaboration implique \u00e9galement de s&rsquo;occuper de plusieurs sites <a href=\"https:\/\/kinsta.com\/wordpress\/\">WordPress<\/a> chez Kinsta, vous pouvez transf\u00e9rer certaines t\u00e2ches courantes de gestion de site vers Slack avec l&rsquo;aide de l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/docs\/api-kinsta\/\">API de Kinsta<\/a>.<\/p>\n<p>L&rsquo;int\u00e9gration d&rsquo;un Slackbot dans votre flux de travail peut vous faire gagner du temps et am\u00e9liorer votre productivit\u00e9. Ce tutoriel combine la puissance de Slack et de l&rsquo;API Kinsta pour construire un Slackbot capable de g\u00e9rer des t\u00e2ches telles que la v\u00e9rification de l&rsquo;\u00e9tat d&rsquo;un site, la vidange du cache d&rsquo;un site et le red\u00e9marrage du moteur PHP d&rsquo;un site.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Ce que vous construisez<\/h2>\n<p>Ici, vous construisez un Slackbot sur <a href=\"https:\/\/kinsta.com\/fr\/blog\/comment-installer-node-js\/\">Node.js<\/a> en utilisant l&rsquo;<a href=\"https:\/\/api.slack.com\/tools\/bolt\" target=\"_blank\" rel=\"noopener noreferrer\">API Bolt<\/a> (la fa\u00e7on la plus rapide de commencer \u00e0 programmer avec la plateforme Slack). Votre application transforme les commandes Slack en appels \u00e0 l&rsquo;API Kinsta et relaie les r\u00e9ponses pour que toute l&rsquo;interaction avec l&rsquo;utilisateur se fasse dans Slack.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/slackbot-demo-with-kinsta-api.gif\" alt=\"D\u00e9monstration du Slackbot de l'API Kinsta.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">D\u00e9monstration du Slackbot de l&rsquo;API Kinsta.<\/figcaption><\/figure>\n<h3>Pr\u00e9-requis<\/h3>\n<p>Pour suivre ce projet, vous devez disposer des \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li>Connaissances de base en <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> et Node.js<\/li>\n<li>Node.js version 12 ou sup\u00e9rieure<\/li>\n<li>npm (<a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-npm\/\">Node Package Manager<\/a>) install\u00e9 sur votre ordinateur<\/li>\n<li>Espace de travail Slack<\/li>\n<\/ul>\n<h2>Cr\u00e9er une application Slack<\/h2>\n<p>Un Slackbot est essentiellement une application Slack. Pour cr\u00e9er une nouvelle application Slack, suivez les \u00e9tapes suivantes :<\/p>\n<ol start=\"1\">\n<li>Acc\u00e9dez au tableau de bord de l&rsquo;<a href=\"https:\/\/api.slack.com\/apps\/\" target=\"_blank\" rel=\"noopener noreferrer\">API Slack<\/a>.<\/li>\n<li>Cliquez sur le bouton <strong>Cr\u00e9er une nouvelle application<\/strong>, qui ouvre une fen\u00eatre modale.<\/li>\n<li>S\u00e9lectionnez l&rsquo;option <strong>\u00c0 partir de z\u00e9ro<\/strong> pour commencer \u00e0 construire votre application \u00e0 partir de z\u00e9ro.<\/li>\n<li>Donnez un nom \u00e0 votre application Slack. Par exemple, <strong>Kinsta Bot<\/strong>.<\/li>\n<li>Ensuite, choisissez l&rsquo;espace de travail o\u00f9 vous souhaitez installer l&rsquo;application et cliquez sur le bouton <strong>Cr\u00e9er une application<\/strong>.<\/li>\n<\/ol>\n<p>N&rsquo;h\u00e9sitez pas \u00e0 modifier les informations de base de votre application en acc\u00e9dant \u00e0 l&rsquo;option <strong>Informations de base<\/strong> dans la colonne lat\u00e9rale. Faites d\u00e9filer vers le bas jusqu&rsquo;\u00e0 <strong>Afficher les informations<\/strong> pour ajouter des d\u00e9tails tels qu&rsquo;une image, un nom, une description, une couleur, et plus encore.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/slackbot-display-information.jpg\" alt=\"Informations d'affichage de Slackbot.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Informations d&rsquo;affichage de Slackbot.<\/figcaption><\/figure>\n<h3>Configurer oAuth et les autorisations<\/h3>\n<p>Vous avez r\u00e9ussi \u00e0 cr\u00e9er un Slackbot. Cependant, certaines permissions doivent \u00eatre accord\u00e9es pour lui permettre d&rsquo;acc\u00e9der aux donn\u00e9es et d&rsquo;effectuer des actions dans votre espace de travail Slack. Pour acc\u00e9der aux r\u00e9galges n\u00e9cessaires :<\/p>\n<ol start=\"1\">\n<li>Allez sur le tableau de bord de votre application Slack et trouvez l&rsquo;option <strong>OAuth et Permissions<\/strong> dans la colonnne lat\u00e9rale de vgauche.<\/li>\n<li>Une fois que vous y \u00eates, faites d\u00e9filer vers le bas jusqu&rsquo;\u00e0 la section <strong>Scopes<\/strong>.<\/li>\n<li>Accordez \u00e0 votre robot la possibilit\u00e9 de lire les messages instantan\u00e9s des utilisateurs et d&rsquo;y r\u00e9pondre.<\/li>\n<\/ol>\n<p>Vous trouverez ci-dessous une capture d&rsquo;\u00e9cran montrant les champs d&rsquo;application que vous devez attribuer \u00e0 votre robot :<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/slack-app-scopes.jpg\" alt=\"Port\u00e9es de l'application Slack.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Port\u00e9es de l&rsquo;application Slack.<\/figcaption><\/figure>\n<p>En configurant ces champs d&rsquo;application, votre robot sera en mesure d&rsquo;interagir de mani\u00e8re transparente avec les utilisateurs de Slack et de remplir efficacement les fonctions pour lesquelles il a \u00e9t\u00e9 con\u00e7u.<\/p>\n<h3>Installer Slack Bot dans votre espace de travail<\/h3>\n<p>Pour terminer le processus, vous devez installer votre nouveau Slackbot dans votre espace de travail Slack. Naviguez dans la barre lat\u00e9rale de gauche et s\u00e9lectionnez <strong>Installer des applications<\/strong>. De l\u00e0, cliquez sur <strong>Installer dans l&rsquo;espace de travail<\/strong> et indiquez le canal dans lequel vous souhaitez ajouter le robot.<\/p>\n<p>Votre Slackbot est maintenant pr\u00eat. Configurons un serveur Node.js qui sera utilis\u00e9 pour recevoir et traiter vos requ\u00eates.<\/p>\n<h2>Configuration de l&rsquo;environnement de d\u00e9veloppement<\/h2>\n<p>Pour commencer avec votre nouveau projet Node.js, cr\u00e9ez un nouveau r\u00e9pertoire pour votre application et initialisez-le avec npm :<\/p>\n<pre><code class=\"language-bash\">mkdir my-express-app \ncd my-express-app \nnpm init -y<\/code><\/pre>\n<p>Apr\u00e8s avoir ex\u00e9cut\u00e9 la commande ci-dessus, un nouveau fichier <strong>package.json<\/strong> est cr\u00e9\u00e9 dans le r\u00e9pertoire que vous avez choisi avec des valeurs par d\u00e9faut. Le fichier <strong>package.json<\/strong> est essentiel car il contient des informations sur votre projet et ses d\u00e9pendances. Ces d\u00e9pendances permettront un d\u00e9veloppement fluide et am\u00e9lioreront les fonctionnalit\u00e9s de votre projet :<\/p>\n<ol start=\"1\">\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/@slack\/bolt\" target=\"_blank\" rel=\"noopener noreferrer\">@slack\/bolt<\/a><\/code>: Ce framework JavaScript vous permet de cr\u00e9er rapidement des applications Slack riches en fonctionnalit\u00e9s, en tirant parti des derni\u00e8res capacit\u00e9s de la plateforme.<\/li>\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/nodemon\" target=\"_blank\" rel=\"noopener noreferrer\">nodemon<\/a><\/code>: Un outil pr\u00e9cieux qui red\u00e9marre automatiquement votre application Node.js chaque fois que des changements de fichiers sont d\u00e9tect\u00e9s dans le r\u00e9pertoire, garantissant ainsi un flux de d\u00e9veloppement rationalis\u00e9.<\/li>\n<li><code><a href=\"https:\/\/www.npmjs.com\/package\/dotenv\" target=\"_blank\" rel=\"noopener noreferrer\">dotenv<\/a><\/code>: Ce module sans d\u00e9pendance joue un r\u00f4le crucial dans le chargement des variables d&rsquo;environnement du fichier <strong>.env<\/strong> dans le site <code>process.env<\/code>, ce qui facilite la gestion de la configuration.<\/li>\n<\/ol>\n<p>Pour installer les paquets requis, ex\u00e9cutez les commandes suivantes :<\/p>\n<pre><code class=\"language-bash\">npm i @slack\/bolt\nnpm i --save-dev nodemon dotenv<\/code><\/pre>\n<p>Apr\u00e8s avoir install\u00e9 avec succ\u00e8s ces d\u00e9pendances et les d\u00e9pendances dev, il est temps d&rsquo;ajouter un script dev \u00e0 votre fichier <strong>package.json<\/strong>, en utilisant <code>nodemon<\/code> pour ex\u00e9cuter votre fichier JavaScript. Assurez-vous que votre objet de script <strong>package.json<\/strong> inclut les \u00e9l\u00e9ments suivants :<\/p>\n<pre><code class=\"language-json\">\"scripts\": {\n  \"dev\": \"nodemon app.js\"\n}<\/code><\/pre>\n<p>Enfin, il est important de mentionner que le script <code>dev<\/code> pointe vers un fichier <strong>app.js<\/strong> inexistant. Cr\u00e9ez ce fichier dans le r\u00e9pertoire de votre projet, car c&rsquo;est l\u00e0 que la logique de votre projet sera g\u00e9r\u00e9e.<\/p>\n<pre><code class=\"language-bash\">touch app.js<\/code><\/pre>\n<h3>Configuration de vos variables d&rsquo;environnement (jetons et secrets)<\/h3>\n<p>Vous aurez besoin de jetons et de secrets sp\u00e9cifiques pour interagir avec votre application Slack depuis votre projet Node.js. Ces informations d&rsquo;identification sont sensibles, et pour assurer leur protection lors de l&rsquo;utilisation du contr\u00f4le de version, nous les stockerons dans le fichier <strong>.env<\/strong>.<\/p>\n<p>Pour obtenir le secret de signature, allez dans votre tableau de bord Slack, cliquez sur <strong>Informations basiques<\/strong>, puis faites d\u00e9filer vers le bas jusqu&rsquo;\u00e0 <strong>Informations de l&rsquo;application<\/strong>, o\u00f9 vous trouverez le secret de signature. Pour le jeton, cliquez sur <strong>Installer l&rsquo;application<\/strong> ou <strong>Permissioins Oauth<\/strong>, et vous trouverez le jeton OAuth. En g\u00e9n\u00e9ral, le jeton commence par\u00a0 \u00ab xoxb \u00bb.<\/p>\n<p>Cr\u00e9ez un fichier nomm\u00e9 <strong>.env<\/strong> dans le r\u00e9pertoire racine de votre projet, et ajoutez le Signing Secret et le Bot Token dans le format suivant :<\/p>\n<pre><code class=\"language-bash\">SLACK_SIGNING_SECRET=\"YOUR SIGNING SECRET\"\nSLACK_BOT_TOKEN=\"YOUR BOT TOKEN\"<\/code><\/pre>\n<p>Pour vous assurer que ces informations sensibles ne sont pas transmises \u00e0 votre fournisseur Git, cr\u00e9ez un <a href=\"https:\/\/kinsta.com\/fr\/blog\/gitignore-ne-fonctionne-pas\/\"> fichier .gitignore<\/a> dans le r\u00e9pertoire racine de votre projet et ajoutez les lignes suivantes pour ignorer le fichier <strong>.env<\/strong> et le <strong>dossier node_modules<\/strong>:<\/p>\n<pre><code class=\"language-bash\">\/node_modules\n.env<\/code><\/pre>\n<p>Cette configuration \u00e9tant termin\u00e9e, vous \u00eates maintenant pr\u00eat \u00e0 proc\u00e9der \u00e0 la configuration du serveur.<\/p>\n<h3>Configuration du serveur Node.js<\/h3>\n<p>La configuration du serveur Node.js est une \u00e9tape cl\u00e9 dans la construction de votre Slackbot. Vous devez importer les paquets et modules n\u00e9cessaires, les initialiser et d\u00e9finir le port sur lequel votre projet \u00e9coutera. Ouvrez le fichier <strong>app.js<\/strong> que vous avez cr\u00e9\u00e9 pr\u00e9c\u00e9demment et ajoutez le code suivant :<\/p>\n<pre><code class=\"language-js\">const { App } = require(\"@slack\/bolt\");\nrequire(\"dotenv\").config();\n\n\/\/ Initializes your app with your bot token and signing secret\nconst app = new App({\n  token: process.env.SLACK_BOT_TOKEN,\n  signingSecret: process.env.SLACK_SIGNING_SECRET,\n});\n\n(async () =&gt; {\n    \/\/ Start your app\n    await app.start(process.env.PORT || 3000);\n    console.log(`\u26a1\ufe0f Kinsta Bot app is running on port ${process.env.PORT || 3000}!`);\n})();<\/code><\/pre>\n<p>Dans le code ci-dessus, vous importez la classe <code>App<\/code> de la biblioth\u00e8que <code>@slack\/bolt<\/code>, un composant essentiel pour la cr\u00e9ation d&rsquo;applications Slack. En outre, vous utilisez le paquetage <code>dotenv<\/code> pour traiter les variables d&rsquo;environnement.<\/p>\n<p>Ensuite, la constante <code>app<\/code> est cr\u00e9\u00e9e \u00e0 l&rsquo;aide de la classe <code>App<\/code>, qui repr\u00e9sente votre application Slack. Elle n\u00e9cessite deux param\u00e8tres importants : <code>token<\/code> et <code>signingSecret<\/code>. Ces valeurs sont extraites du fichier <strong>.env<\/strong>.<\/p>\n<p>Ensuite, \u00e0 l&rsquo;int\u00e9rieur de la fonction <code>async<\/code>, la configuration du serveur a lieu. L&rsquo;application est lanc\u00e9e en appelant <code>app.start()<\/code>. Elle \u00e9coute le port <code>3000<\/code> localement et envoie un message \u00e0 la console, confirmant que l&rsquo;application Kinsta Bot est en cours d&rsquo;ex\u00e9cution.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Lors du d\u00e9ploiement d&rsquo;une application node, vous ne devez pas d\u00e9finir ou coder en dur le port dans votre application. Utilisez <code>process.env.PORT<\/code> dans votre code lorsque vous faites r\u00e9f\u00e9rence au port du serveur et le service de d\u00e9ploiement d\u00e9finira automatiquement la variable d&rsquo;environnement `PORT`.<\/p>\n<\/aside>\n\n<p>Maintenant, lorsque vous ex\u00e9cutez le script <code>dev<\/code> que vous avez configur\u00e9 (<code>npm run dev<\/code>), vous obtenez le message suivant dans votre terminal : \u00ab\u00a0\u26a1\ufe0f Kinsta Bot app is running on port 3000 !\u00a0\u00bb<\/p>\n<h2>Comprendre le mode socket de l&rsquo;API Slack<\/h2>\n<p>Dans l&rsquo;int\u00e9gration de l&rsquo;API Slack avec les serveurs Node.js, il existe deux m\u00e9thodes principales de connexion : l&rsquo;utilisation du point de terminaison HTTP public de votre serveur ou l&rsquo;utilisation du <a href=\"https:\/\/api.slack.com\/apis\/connections\/socket\" target=\"_blank\" rel=\"noopener noreferrer\">mode Socket<\/a> pour activer les WebSockets. Ce tutoriel se concentre sur l&rsquo;utilisation du mode Socket, car il permet la mise en \u0153uvre de fonctionnalit\u00e9s interactives telles que les commandes Slack slash avec une plus grande facilit\u00e9. Cette approche permet \u00e0 Slack de se connecter \u00e0 votre serveur Node.js en utilisant des WebSockets au lieu du traditionnel HTTP.<\/p>\n<p>Cependant, si vous choisissez d&rsquo;utiliser le point de terminaison HTTP localement, vous pouvez utiliser <a href=\"https:\/\/ngrok.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ngrok<\/a> pour cr\u00e9er une URL publique qui renvoie \u00e0 votre h\u00f4te local.<\/p>\n<h3>D\u00e9marrer avec le mode Socket<\/h3>\n<p>Pour commencer \u00e0 utiliser le mode Socket, suivez les \u00e9tapes suivantes :<\/p>\n<ol start=\"1\">\n<li>Naviguez vers <strong>Informations de base<\/strong> dans la barre lat\u00e9rale gauche de votre tableau de bord Slack. Faites d\u00e9filer vers le bas jusqu&rsquo;\u00e0 <strong>App-Level Tokens<\/strong> et cliquez sur le bouton <strong>G\u00e9n\u00e9rer un jeton et des champs d&rsquo;application<\/strong>.<\/li>\n<li>Donnez un nom \u00e0 votre token et ajoutez les deux scopes disponibles : <code>connections:write<\/code> et <code>authorizations:read<\/code>. Cliquez sur <strong>G\u00e9n\u00e9rer<\/strong> pour cr\u00e9er le jeton.<\/li>\n<li>Copiez le jeton g\u00e9n\u00e9r\u00e9 et collez-le dans votre fichier <strong>.env<\/strong>, en l&rsquo;affectant \u00e0 une variable appel\u00e9e <code>APP_TOKEN<\/code>. N&rsquo;oubliez pas que les cha\u00eenes de jetons au niveau de l&rsquo;application commencent par <code>xapp-<\/code>.<\/li>\n<\/ol>\n<p>Ensuite, cliquez sur <strong>Socket Mode<\/strong> dans la barre lat\u00e9rale et activez l&rsquo;option <strong>Activer les mode socket<\/strong>. Enfin, dans votre fichier <strong>app.js<\/strong>, ajoutez <code>socketMode:true<\/code> et votre <code>appToken<\/code> au code qui initialise votre application\/serveur :<\/p>\n<pre><code class=\"language-js\">const app = new App({\n  token: process.env.SLACK_BOT_TOKEN,\n  signingSecret: process.env.SLACK_SIGNING_SECRET,\n  socketMode: true, \/\/ enable socket mode\n  appToken: process.env.APP_TOKEN,\n});<\/code><\/pre>\n<p>Une fois ces \u00e9tapes termin\u00e9es, toutes les requ\u00eates adress\u00e9es \u00e0 votre serveur de d\u00e9veloppement se feront via WebSockets plut\u00f4t que via HTTP. Cette configuration vous permet de tirer le meilleur parti du mode Socket et d&rsquo;am\u00e9liorer les fonctionnalit\u00e9s de votre Slackbot.<\/p>\n<h2>Commandes Slack Slash<\/h2>\n<p>Les <a href=\"https:\/\/api.slack.com\/interactivity\/slash-commands\" target=\"_blank\" rel=\"noopener noreferrer\">commandes Sash<\/a> sont une fonctionnalit\u00e9 puissante de Slack qui permet de d\u00e9clencher des actions sp\u00e9cifiques. Ces d\u00e9clencheurs peuvent \u00eatre d\u00e9tect\u00e9s dans les messages de discussion \u00e0 travers les canaux de Slack. En outre, les commandes Slash vous permettent de transmettre des donn\u00e9es textuelles directement \u00e0 votre serveur. Par exemple, si vous configurez une commande telle que <code>\/operation_status [operation ID]<\/code>, elle transmettra le texte fourni <code>operation ID<\/code> \u00e0 votre serveur et d\u00e9clenchera la commande <code>operation_status<\/code> correspondante.<\/p>\n<p>Une fois votre serveur correctement configur\u00e9 pour interagir avec Slack, l&rsquo;\u00e9tape suivante consiste \u00e0 configurer des commandes Slash qui d\u00e9clencheront des actions sur votre serveur.<\/p>\n<h3>Cr\u00e9ation de commandes Slash sur Slack<\/h3>\n<p>Pour cr\u00e9er des commandes Slash sur Slack, cliquez sur l&rsquo;option de menu <strong>Commandes Slash<\/strong> dans la barre lat\u00e9rale gauche, puis sur le bouton <strong>Cr\u00e9er<\/strong> <strong>une nouvelle commande<\/strong>. Remplissez le formulaire qui en r\u00e9sulte en vous inspirant de l&rsquo;image ci-dessous.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/create-a-new-slack-command.jpg\" alt=\"Cr\u00e9ez une nouvelle commande Slack.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Cr\u00e9ez une nouvelle commande Slack.<\/figcaption><\/figure>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Si vous n&rsquo;utilisez pas le mode Socket, vous devrez ajouter l&rsquo;URL de la requ\u00eate g\u00e9n\u00e9r\u00e9e par ngrok. Veillez \u00e0 ajouter <strong>\/slack\/events<\/strong> \u00e0 la fin de l&rsquo;URL de ngrok.<\/p>\n<\/aside>\n\n<p>Apr\u00e8s avoir rempli le formulaire, cliquez sur le bouton <strong>Enregistrer<\/strong>. Slack vous demandera de r\u00e9installer l&rsquo;application dans votre espace de travail pour que les changements prennent effet. Suivez les instructions pour cr\u00e9er des commandes slash, comme le montre l&rsquo;image ci-dessous :<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/slash-commands-to-interact-with-kinsta-api.jpg\" alt=\"Commandes Slash pour interagir avec l'API Kinsta.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Commandes Slash pour interagir avec l&rsquo;API Kinsta.<\/figcaption><\/figure>\n<h3>Configuration des commandes slash avec Node.js<\/h3>\n<p>Une fois que vous avez cr\u00e9\u00e9 les commandes slash n\u00e9cessaires, modifiez votre application Node.js pour y r\u00e9pondre.<\/p>\n<p>Commen\u00e7ons par tester la commande <code>\/operation_status<\/code>. Configurez un r\u00e9cepteur pour les \u00e9v\u00e8nements qui incluent la commande <code>\/operation_status<\/code> en ajoutant le code suivant \u00e0 votre fichier <strong>app.j<\/strong> s :<\/p>\n<pre><code class=\"language-js\">const { App } = require('@slack\/bolt');\nrequire('dotenv').config();\n\nconst app = new App({\n    token: process.env.SLACK_BOT_TOKEN,\n    signingSecret: process.env.SLACK_SIGNING_SECRET,\n    socketMode: true, \/\/ enable the following to use socket mode\n    appToken: process.env.APP_TOKEN,\n});\n\napp.command('\/operation_status', async ({ command, ack, say }) =&gt; {\n    await ack();\n    say('Wooah! Iit works!');\n});\n\n(async () =&gt; {\n    \/\/ Start your app\n    await app.start(process.env.PORT || 3000);\n    console.log(`\u26a1\ufe0f Kinsta Bot app is running on port ${process.env.PORT || 3000}!`);\n})();<\/code><\/pre>\n<p>Dans le code ci-dessus, l&rsquo;accent est mis sur la fonction <code>app.command()<\/code>, qui fonctionne de la m\u00eame mani\u00e8re que les r\u00e9cepteurs d&rsquo;\u00e9v\u00e8nements en JavaScript. Vous sp\u00e9cifiez la commande que vous souhaitez \u00e9couter, puis vous cr\u00e9ez une fonction de rappel asynchrone pour d\u00e9finir l&rsquo;action souhait\u00e9e. Cette fonction prend trois param\u00e8tres :<\/p>\n<ul>\n<li><code>command<\/code><strong>:<\/strong> Contient les d\u00e9tails de la commande slash envoy\u00e9e par l&rsquo;utilisateur.<\/li>\n<li><code>ack<\/code><strong>:<\/strong> Accuse r\u00e9ception de la commande slash.<\/li>\n<li><code>say<\/code><strong>:<\/strong> Renvoie un message au canal Slack.<\/li>\n<\/ul>\n<p>Avec le code ci-dessus, la commande <code>\/operation_status<\/code> dans Slack g\u00e9n\u00e8re le message suivant : \u00ab Wooah ! It works !\u00a0\u00bb<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/testing-kinsta-slash-command.jpg\" alt=\"Test de la commande slash de Kinsta.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Test de la commande slash de Kinsta.<\/figcaption><\/figure>\n<p>Maintenant, ajoutons les command listeners pour toutes les commandes slash que vous avez cr\u00e9\u00e9es :<\/p>\n<pre><code class=\"language-js\">app.command('\/environment_id', async ({ command, ack, say }) =&gt; {\n    await ack();\n    \/\/ Perform the desired action using the command and then send a response.\n});\n\napp.command('\/site_id', async ({ command, ack, say }) =&gt; {\n    await ack();\n    \/\/ Perform the desired action using the command and then send a response.\n});\n\napp.command('\/operation_status', async ({ command, ack, say }) =&gt; {\n    await ack();\n    \/\/ Perform the desired action using the command and then send a response.\n});\n\napp.command('\/clear_site_cache', async ({ command, ack, say }) =&gt; {\n    await ack();\n    \/\/ Perform the desired action using the command and then send a response.\n});\n\napp.command('\/restart_php_engine', async ({ command, ack, say }) =&gt; {\n    await ack();\n    \/\/ Perform the desired action using the command and then send a response.\n});<\/code><\/pre>\n<p>Votre application est maintenant pr\u00eate \u00e0 \u00e9couter les commandes Slack. Il est temps d&rsquo;ajouter les actions que chaque commande d\u00e9clenchera.<\/p>\n<h2>Configurer des commandes Slack avec l&rsquo;API Kinsta<\/h2>\n<p>Votre application r\u00e9pondra \u00e0 chaque commande Slack par un appel \u00e0 l&rsquo;API Kinsta, puis renverra le r\u00e9sultat de cette action \u00e0 Slack. Pour utiliser l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/docs\/api-kinsta\/\">API de Kinsta<\/a>, vous devez avoir un compte avec au moins un <a href=\"https:\/\/kinsta.com\/fr\/hebergement-wordpress\/\">site<\/a>, une <a href=\"https:\/\/sevalla.com\/application-hosting\/\">application<\/a> ou une <a href=\"https:\/\/sevalla.com\/database-hosting\/\">base de donn\u00e9es<\/a> WordPress dans <a href=\"https:\/\/my.kinsta.com\/?lang=fr\">MyKinsta<\/a>. Vous devrez \u00e9galement g\u00e9n\u00e9rer une cl\u00e9 API pour vous authentifier et acc\u00e9der \u00e0 votre compte via l&rsquo;API.<\/p>\n<h3>Comment cr\u00e9er une cl\u00e9 API Kinsta<\/h3>\n<p>Pour g\u00e9n\u00e9rer une cl\u00e9 API :<\/p>\n<ol start=\"1\">\n<li>Allez sur votre tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\">MyKinsta<\/a>.<\/li>\n<li>Naviguez jusqu&rsquo;\u00e0 la page des <strong>cl\u00e9s API <\/strong>(<strong>Votre nom<\/strong> &gt; <strong>R\u00e9glages de l&rsquo;entreprise<\/strong> &gt; <strong>Cl\u00e9s API<\/strong>).<\/li>\n<li>Cliquez sur <strong>Cr\u00e9er une cl\u00e9 API<\/strong>.<\/li>\n<li>Choisissez une date d&rsquo;expiration ou d\u00e9finissez une date de d\u00e9but personnalis\u00e9e et un nombre d&rsquo;heures pour l&rsquo;expiration de la cl\u00e9.<\/li>\n<li>Donnez un nom unique \u00e0 la cl\u00e9.<\/li>\n<li>Cliquez sur <strong>G\u00e9n\u00e9rer<\/strong>.<\/li>\n<\/ol>\n<p>Lorsque vous cr\u00e9ez une cl\u00e9 API, copiez-la et conservez-la dans un endroit s\u00fbr, car c&rsquo;est la <strong>seule fois o\u00f9 vous pourrez la voir<\/strong>. Pour ce projet, enregistrez-la dans votre fichier <strong>.env<\/strong> sous <code>KINSTA_API_KEY<\/code>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Consid\u00e9rez votre cl\u00e9 API comme une information sensible et conservez-la en toute s\u00e9curit\u00e9. \u00c9vitez de partager la cl\u00e9 avec des personnes non autoris\u00e9es. Si vous travaillez sur un projet collaboratif, nous vous recommandons d&rsquo;utiliser un <a href=\"https:\/\/kinsta.com\/fr\/blog\/gestionnaires-mots-passe\/\">gestionnaire de mot de passe<\/a> pour la partager en toute s\u00e9curit\u00e9.<\/p>\n<\/aside>\n\n<h3>Interagir avec l&rsquo;API Kinsta dans Node.js<\/h3>\n<p>L&rsquo;interaction avec l&rsquo;API Kinsta peut \u00eatre r\u00e9alis\u00e9e \u00e0 l&rsquo;aide d&rsquo;un certain nombre de biblioth\u00e8ques Node.js, y compris <a href=\"https:\/\/kinsta.com\/fr\/blog\/bibliotheques-node-js\/#10-axios\">Axios<\/a>. Toutefois, dans ce tutoriel, nous opterons pour la m\u00e9thode JavaScript <code>fetch()<\/code>, qui est d\u00e9sormais prise en charge et fonctionne efficacement dans les <a href=\"https:\/\/kinsta.com\/fr\/blog\/node-js-20\/#performance\">derni\u00e8res versions de Node.js<\/a>.<\/p>\n<p>Pour ce Slackbot, de nombreuses requ\u00eates API seront effectu\u00e9es, y compris des requ\u00eates GET et POST. Pour \u00e9viter les r\u00e9p\u00e9titions, stockez l&rsquo;URL de l&rsquo;API et les en-t\u00eates dans des variables afin que votre code soit facile \u00e0 maintenir et \u00e0 lire :<\/p>\n<pre><code class=\"language-js\">\/\/ kinsta API utilities\nconst KinstaAPIUrl = 'https:\/\/api.kinsta.com\/v2';\n\nconst getHeaders = {\n    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,\n};\n\nconst postHeaders = {\n    'Content-Type': 'application\/json',\n    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,\n};<\/code><\/pre>\n<p>Avant de commencer \u00e0 coder la r\u00e9ponse de votre application \u00e0 chaque commande slash, vous devez copier l&rsquo;identifiant de votre entreprise Kinsta et le stocker dans le fichier <strong>.env<\/strong> \u00e0 l&rsquo;adresse <code>KINSTA_COMPANY_ID<\/code>. Il sera n\u00e9cessaire pour r\u00e9cup\u00e9rer votre liste de sites.<\/p>\n<h3>Impl\u00e9mentation de la commande slash Environment ID<\/h3>\n<p>Lorsque vous utilisez la commande slash <code>\/environment_id<\/code>, toute valeur fournie apr\u00e8s la commande sera r\u00e9cup\u00e9r\u00e9e et utilis\u00e9e dans votre serveur Node.js. Pour cette commande, un indice a \u00e9t\u00e9 ajout\u00e9 pour indiquer qu&rsquo;elle attend un param\u00e8tre : le <code>[Site name]<\/code>.<\/p>\n<p>Chaque site sur MyKinsta a un nom de site unique, mais il n&rsquo;y a pas de point d&rsquo;acc\u00e8s direct pour demander l&rsquo;ID d&rsquo;environnement d&rsquo;un site en utilisant son nom. Par cons\u00e9quent, vous devez d&rsquo;abord faire une demande pour tous les sites sur le compte de votre entreprise, puis utiliser la m\u00e9thode <code>find()<\/code> pour localiser le site dont le nom correspond \u00e0 celui pass\u00e9 avec la commande slash.<\/p>\n<p>Pour cela, deux requ\u00eates sont effectu\u00e9es. D&rsquo;abord, vous obtenez l&rsquo;ID du site, puis vous faites une autre demande au point de terminaison <code>\/environments<\/code> pour r\u00e9cup\u00e9rer l&rsquo;ID de l&rsquo;environnement associ\u00e9 \u00e0 ce site.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Lorsque vous utilisez les commandes slash, il est essentiel de faire attention au nombre de requ\u00eates effectu\u00e9es. L&rsquo;API Kinsta impose certaines limites : vous pouvez effectuer un maximum de 60 requ\u00eates par minute pour les op\u00e9rations r\u00e9guli\u00e8res, tandis que pour la cr\u00e9ation de sites, le nombre de requ\u00eates est limit\u00e9 \u00e0 3 par minute en raison de la nature gourmande en ressources de l&rsquo;op\u00e9ration.<\/p>\n<\/aside>\n\n<p>Pour pr\u00e9server la clart\u00e9 du code et faciliter la maintenance, chaque requ\u00eate est effectu\u00e9e de mani\u00e8re ind\u00e9pendante. Cela signifie qu&rsquo;il faut disposer de fonctions individuelles pour ces demandes et appeler ces fonctions dans l&rsquo;\u00e9couteur de commandes.<\/p>\n<p>Commen\u00e7ons par r\u00e9cup\u00e9rer la liste de tous vos sites :<\/p>\n<pre><code class=\"language-js\">async function getAllSites() {\n    const query = new URLSearchParams({\n        company: process.env.KINSTA_COMPANY_ID,\n    }).toString();\n    const resp = await fetch(`${KinstaAPIUrl}\/sites?${query}`, {\n        method: 'GET',\n        headers: getHeaders,\n    });\n    const data = await resp.json();\n    return data;\n}<\/code><\/pre>\n<p>Le code ci-dessus renvoie un tableau contenant tous les sites. Dans l&rsquo;\u00e9couteur de commande <code>\/environment_id<\/code>, vous r\u00e9cup\u00e9rerez la r\u00e9ponse et la stockerez dans une variable. Ensuite, \u00e0 l&rsquo;aide de la m\u00e9thode <code>find()<\/code>, recherchez un site dont le nom correspond \u00e0 celui transmis par Slack. Les informations provenant de Slack sont stock\u00e9es dans <code>command.text<\/code>.<\/p>\n<pre><code class=\"language-js\">app.command('\/environment_id', async ({ command, ack, say }) =&gt; {\n    await ack();\n    let siteName = command.text;\n    let response = await getAllSites();\n    if (response) {\n        let mySites = response.company.sites;\n        let currentSite = mySites.find((site) =&gt; site.name === siteName);\n        \/\/ get environment ID\n    }\n});<\/code><\/pre>\n<p>Maintenant que vous avez le site, utilisez son ID pour r\u00e9cup\u00e9rer l&rsquo;ID de l&rsquo;environnement. Comme lorsque nous avons demand\u00e9 une liste de sites, cr\u00e9ez une fonction d\u00e9di\u00e9e pour effectuer une requ\u00eate HTTP vers le point de terminaison <code>\/environments<\/code>:<\/p>\n<pre><code class=\"language-js\">async function getEnvironmentId(siteId) {\n    const resp = await fetch(`${KinstaAPIUrl}\/sites\/${siteId}\/environments`, {\n        method: 'GET',\n        headers: getHeaders,\n    });\n    const data = await resp.json();\n    return data;\n}<\/code><\/pre>\n<p>Le code ci-dessus s&rsquo;attend \u00e0 ce que l&rsquo;ID du site soit transmis en tant qu&rsquo;argument lors de l&rsquo;appel de cette fonction dans l&rsquo;\u00e9couteur de commandes <code>\/environment_id<\/code>. D\u00e8s r\u00e9ception de l&rsquo;ID, la requ\u00eate API est effectu\u00e9e et la r\u00e9ponse est stock\u00e9e dans une variable. Vous pouvez ensuite afficher l&rsquo;ID de l&rsquo;environnement sur Slack \u00e0 l&rsquo;aide de la m\u00e9thode <code>say()<\/code>:<\/p>\n<pre><code class=\"language-js\">app.command('\/environment_id', async ({ command, ack, say }) =&gt; {\n    await ack();\n    let siteName = command.text;\n    let response = await getAllSites();\n    if (response) {\n        let mySites = response.company.sites;\n        let currentSite = mySites.find((site) =&gt; site.name === siteName);\n        let envIdResponse = await getEnvironmentId(currentSite.id);\n        let envId = envIdResponse.site.environments[0].id;\n        if (envId) {\n            say(`Hey \ud83d\udc4b,nnThe environment ID for \"${siteName}\" is \ud83d\udc49 ${envId}`);\n        }\n    }\n});<\/code><\/pre>\n<p>\u00c0 ce stade, lorsque vous ouvrez Slack et que vous tapez <code>\/environment_id<\/code> suivi d&rsquo;un nom de site valide, tel que <code>\/environment_id fashionstored<\/code>, vous recevez une r\u00e9ponse qui ressemble \u00e0 celle-ci :<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/environment-id-slash-command.jpg\" alt=\"ID de l'environnement Commande Slash.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">ID de l&rsquo;environnement Commande Slash.<\/figcaption><\/figure>\n<h3>Mise en \u0153uvre des outils de site (effacer le cache du site, red\u00e9marrer le moteur PHP) Commande Slash<\/h3>\n<p>Deux t\u00e2ches que vous pouvez facilement mettre en \u0153uvre par le biais de l&rsquo;API sans avoir \u00e0 naviguer sur MyKinsta sont les op\u00e9rations d&rsquo;<a href=\"https:\/\/api-docs.kinsta.com\/tag\/Site-Tools\/\" target=\"_blank\" rel=\"noopener noreferrer\">outils de site<\/a> effacer le cache du site etred\u00e9marrer le moteur PHP.<\/p>\n<p>Pour effectuer une op\u00e9ration d&rsquo;outil de site, tout ce dont vous avez besoin est l&rsquo;ID de l&rsquo;environnement. Cet identifiant est utilis\u00e9 pour effectuer une requ\u00eate POST vers <code>\/sites\/tools\/clear-cache<\/code> et <code>\/sites\/tools\/restart-php<\/code> respectivement. Comme vous l&rsquo;avez fait pr\u00e9c\u00e9demment, effectuez la requ\u00eate API de mani\u00e8re ind\u00e9pendante et renvoyez la r\u00e9ponse :<\/p>\n<pre><code class=\"language-js\">async function clearSiteCache(environmentId) {\n    const resp = await fetch(`${KinstaAPIUrl}\/sites\/tools\/clear-cache`, {\n        method: 'POST',\n        headers: postHeaders,\n        body: JSON.stringify({\n            environment_id: environmentId,\n        }),\n    });\n    const data = await resp.json();\n    return data;\n}\n\nasync function restartPHPEngine(environmentId) {\n    const resp = await fetch(`${KinstaAPIUrl}\/sites\/tools\/restart-php`, {\n        method: 'POST',\n        headers: postHeaders,\n        body: JSON.stringify({\n            environment_id: environmentId,\n        }),\n    });\n    const data = await resp.json();\n    return data;\n}<\/code><\/pre>\n<p>Ensuite, vous allez cr\u00e9er des r\u00e9cepteurs de commande pour les deux op\u00e9rations dans Slack. Ces listeners seront configur\u00e9s pour se d\u00e9clencher \u00e0 chaque fois que la commande correspondante est utilis\u00e9e :<\/p>\n<pre><code class=\"language-js\">app.command('\/clear_site_cache', async ({ command, ack, say }) =&gt; {\n    await ack();\n    let environmentId = command.text;\n    let response = await clearSiteCache(environmentId);\n    if (response) {\n        say(\n            `Hey \ud83d\udc4b, nn${response.message} by using the \/operation_status slack commmand. nnOperation Id is ${response.operation_id}`\n        );\n    }\n});\n\napp.command('\/restart_php_engine', async ({ command, ack, say }) =&gt; {\n    await ack();\n    let environmentId = command.text;\n    let response = await restartPHPEngine(environmentId);\n    if (response) {\n        say(\n            `Hey \ud83d\udc4b, nn${response.message} by using the \/operation_status slack command. nnOperation Id is ${response.operation_id}`\n        );\n    }\n});<\/code><\/pre>\n<p>Dans le code ci-dessus, les donn\u00e9es extraites des requ\u00eates API sont utilis\u00e9es pour construire la r\u00e9ponse renvoy\u00e9e \u00e0 Slack. La r\u00e9ponse comprend des informations sur l&rsquo;op\u00e9ration, telles que le message et l&rsquo;identifiant de l&rsquo;op\u00e9ration.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/restart-php-engine-slackbot.jpg\" alt=\"Red\u00e9marrez le moteur PHP avec la commande slash.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Red\u00e9marrez le moteur PHP avec la commande slash.<\/figcaption><\/figure>\n<p>En impl\u00e9mentant ces commandes slash et leurs listeners correspondants, vous permettrez \u00e0 votre Slackbot d&rsquo;interagir de mani\u00e8re transparente avec l&rsquo;API Kinsta, rendant plus facile que jamais la gestion du cache de votre site et du moteur PHP directement depuis Slack.<\/p>\n<h3>Impl\u00e9mentation d&rsquo;une commande Slash d&rsquo;\u00e9tat d&rsquo;op\u00e9ration<\/h3>\n<p>Il serait \u00e9galement int\u00e9ressant d&rsquo;obtenir le statut de vos op\u00e9rations depuis Slack. Pour cela, vous utiliserez le point de terminaison <code>\/operations<\/code> ainsi que le point de terminaison <code>operation_id<\/code>. Comme pr\u00e9c\u00e9demment, cr\u00e9ez une fonction pour g\u00e9rer cette requ\u00eate et renvoyer la r\u00e9ponse :<\/p>\n<pre><code class=\"language-js\">async function CheckOperationStatus(operationId) {\n    const resp = await fetch(`${KinstaAPIUrl}\/operations\/${operationId}`, {\n        method: 'GET',\n        headers: getHeaders,\n    });\n    const data = await resp.json();\n    return data;\n}<\/code><\/pre>\n<p>D\u00e9finissons le command listener pour d\u00e9clencher la requ\u00eate et passer le <code>operation ID<\/code> envoy\u00e9 via Slack :<\/p>\n<pre><code class=\"language-js\">app.command('\/operation_status', async ({ command, ack, say }) =&gt; {\n    await ack();\n    let operationId = command.text;\n    let response = await CheckOperationStatus(operationId);\n    let operationMessage = response.message;\n    if (operationMessage) {\n        say(`Hey \ud83d\udc4b, nn${operationMessage}`);\n    }\n});<\/code><\/pre>\n<p>Maintenant, lorsque vous utilisez la commande <code>\/operation_status<\/code> slash avec n&rsquo;importe quel <code>operation ID<\/code> valide, vous obtiendrez le statut de l&rsquo;ID renvoy\u00e9 par Slack.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/check-operation-status-slackbot.jpg\" alt=\"V\u00e9rifiez le statut de l'op\u00e9ration avec Slackbot.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">V\u00e9rifiez le statut de l&rsquo;op\u00e9ration avec Slackbot.<\/figcaption><\/figure>\n<p>Outre les commandes que vous avez d\u00e9j\u00e0 mises en \u0153uvre avec l&rsquo;API Kinsta, d&rsquo;autres commandes peuvent \u00eatre int\u00e9gr\u00e9es, ainsi que des \u00e9v\u00e9nements suppl\u00e9mentaires qui peuvent \u00eatre g\u00e9r\u00e9s par le Slackbot. Par exemple, le Slackbot peut r\u00e9agir lorsqu&rsquo;il est mentionn\u00e9 ou \u00e9tiquet\u00e9 \u00e0 l&rsquo;aide du symbole <code>@<\/code>.<\/p>\n<p>Pour activer cette fonctionnalit\u00e9, vous devez vous abonner aux \u00e9v\u00e9nements n\u00e9cessaires dans Slack. Au lieu d&rsquo;utiliser la m\u00e9thode <code>app.command()<\/code>, vous utiliserez la m\u00e9thode <code>app.message()<\/code>, qui prend les param\u00e8tres <code>command<\/code> et <code>say<\/code>.<\/p>\n<p>Voici un exemple de ce que vous pouvez faire :<\/p>\n<pre><code class=\"language-js\">app.message(\"hey\", async ({ command, say }) =&gt; {\n  say(\"Woah! It works!\");\n});<\/code><\/pre>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 votre Slackbot, vous remarquerez peut-\u00eatre que vous ne pouvez pas lui envoyer de messages. Lorsque vous naviguez vers le Slackbot sous l&rsquo;onglet Apps dans Slack, vous pouvez rencontrer un message indiquant : \u00ab L&rsquo;envoi de messages \u00e0 cette application a \u00e9t\u00e9 d\u00e9sactiv\u00e9 \u00bb Ne vous inqui\u00e9tez pas, nous pouvons facilement r\u00e9soudre ce probl\u00e8me !<\/p>\n<p>Pour activer l&rsquo;envoi de messages, proc\u00e9dez comme suit :<\/p>\n<ol start=\"1\">\n<li>Cliquez sur l&rsquo;option de menu <strong>App Home<\/strong> situ\u00e9e dans la colonne lat\u00e9rale de gauche.<\/li>\n<li>Cette page vous permet de g\u00e9rer tous les r\u00e9glages de votre robot. Faites d\u00e9filer la page jusqu&rsquo;\u00e0 ce que vous trouviez la case \u00ab Permettre aux utilisateurs d&rsquo;envoyer des commandes et des messages Slash depuis l&rsquo;onglet Messages \u00bb\u2026..<\/li>\n<li>Cochez la case pour activer cette fonctionnalit\u00e9.<\/li>\n<\/ol>\n<p>Une fois ces modifications effectu\u00e9es, il est essentiel de recharger votre application Slack pour refl\u00e9ter les mises \u00e0 jour. Si vous utilisez un Mac, vous pouvez recharger Slack en appuyant sur <strong>CMD + R<\/strong>. Pour les autres utilisateurs de PC, vous pouvez le faire en appuyant sur <strong>CTRL + R<\/strong>.<\/p>\n<p>Vous \u00eates maintenant pr\u00eat \u00e0 envoyer des messages \u00e0 votre robot ! Dans l&rsquo;application Slack, vous devriez voir l&rsquo;application Kinsta Bot list\u00e9e juste en dessous de la section <strong>Vos applications<\/strong>. Cliquez dessus pour commencer \u00e0 envoyer des messages. N&rsquo;h\u00e9sitez pas \u00e0 tester n&rsquo;importe laquelle des commandes slash que vous avez configur\u00e9es, elles devraient fonctionner parfaitement. Appr\u00e9ciez l&rsquo;interaction transparente avec votre Slackbot !<\/p>\n<p>Le code source complet de ce projet est disponible sur <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>.<\/p>\n<h2>D\u00e9ployer votre application Node.js sur Kinsta<\/h2>\n<p>Lorsque vous construisez votre serveur Node.js, il est important de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">le d\u00e9ployer<\/a> afin que votre Slackbot soit toujours disponible, m\u00eame si vous arr\u00eatez votre d\u00e9veloppement local. Vous pouvez d\u00e9ployer sur la plateforme d&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;applications<\/a> de Kinsta si votre code est h\u00e9berg\u00e9 sur les fournisseurs Git <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> ou <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>.<\/p>\n<p>Pour d\u00e9ployer votre r\u00e9f\u00e9rentiel sur Kinsta, suivez les \u00e9tapes suivantes :<\/p>\n<ol start=\"1\">\n<li>Connectez-vous \u00e0 votre compte Kinsta sur le tableau de bord MyKinsta.<\/li>\n<li>Cliquez sur <strong>Ajouter un service<\/strong>.<\/li>\n<li>S\u00e9lectionnez <strong>Application<\/strong> dans le menu d\u00e9roulant.<\/li>\n<li>Dans la fen\u00eatre modale qui s&rsquo;affiche, choisissez le r\u00e9f\u00e9rentiel que vous souhaitez d\u00e9ployer. Si vous avez plusieurs branches, vous pouvez s\u00e9lectionner la branche souhait\u00e9e et donner un nom \u00e0 votre application.<\/li>\n<li>S\u00e9lectionnez l&rsquo;un des centres de donn\u00e9es disponibles. Kinsta d\u00e9tectera et installera les d\u00e9pendances de votre application \u00e0 partir du fichier package.json, puis construira et d\u00e9ploiera.<\/li>\n<\/ol>\n<p>Enfin, il n&rsquo;est pas s\u00fbr d&rsquo;envoyer des cl\u00e9s d&rsquo;API \u00e0 des h\u00f4tes publics comme votre fournisseur Git. Lorsque vous h\u00e9bergez sur Kinsta, vous pouvez les ajouter en tant que <a href=\"https:\/\/docs.sevalla.com\/applications\/environment-variables\">variables d&rsquo;environnement<\/a> en utilisant le m\u00eame nom de variable et la m\u00eame valeur que ceux sp\u00e9cifi\u00e9s dans votre fichier <strong>.env<\/strong> de d\u00e9veloppement.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/set-env-variables-myKinsta.jpg\" alt=\"D\u00e9finissez les variables d'environnement sur DevKinsta lors du d\u00e9ploiement.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">D\u00e9finissez les variables d&rsquo;environnement sur DevKinsta lors du d\u00e9ploiement.<\/figcaption><\/figure>\n<p>Une fois que vous avez lanc\u00e9 le d\u00e9ploiement de votre application, le processus commence et se termine g\u00e9n\u00e9ralement en quelques minutes. Si des probl\u00e8mes avec vos configurations Node.js affectent le d\u00e9ploiement, vous pouvez ajouter un buildpack Node.js dans l&rsquo;onglet des param\u00e8tres de d\u00e9ploiement.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Vous pouvez activer le d\u00e9ploiement automatique, de sorte que Kinsta red\u00e9ploie votre application chaque fois que vous modifiez votre base de code et que vous la poussez sur GitHub.<\/p>\n<\/aside>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Dans cet article, vous avez appris \u00e0 construire une application Node.js qui connecte Slack avec l&rsquo;API Kinsta et \u00e0 d\u00e9ployer cette application sur Kinsta.<\/p>\n<p>Les Slackbots et l&rsquo;API Kinsta vous permettent de surveiller et de g\u00e9rer plus facilement vos services h\u00e9berg\u00e9s sur Kinsta. En partant des bases de ce tutoriel, imaginez ce que vous pouvez faire avec un Slackbot et l&rsquo;API. Pensez \u00e0 des commandes plus complexes qui ex\u00e9cutent des op\u00e9rations telles que <a href=\"https:\/\/kinsta.com\/fr\/blog\/cloner-votre-site-wordpress\/\">le clonage<\/a> et la <a href=\"https:\/\/kinsta.com\/fr\/blog\/api-wordpress\/\">cr\u00e9ation de sites<\/a> WordPress directement \u00e0 partir de Slack.<\/p>\n<p><em>Comment utilisez-vous l&rsquo;API de Kinsta ? Quelles sont les fonctionnalit\u00e9s que vous aimeriez voir ajout\u00e9es\/expos\u00e9es prochainement ?<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Slack est une plateforme de messagerie puissante qui permet aux \u00e9quipes de collaborer efficacement. Et si cette collaboration implique \u00e9galement de s&rsquo;occuper de plusieurs sites WordPress &#8230;<\/p>\n","protected":false},"author":287,"featured_media":71831,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[953,994],"class_list":["post-71830","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment construire un Slackbot avec Node.js et l&#039;API Kinsta pour la gestion de site<\/title>\n<meta name=\"description\" content=\"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l&#039;API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment construire un Slackbot avec Node.js et l&#039;API Kinsta pour la gestion de site\" \/>\n<meta property=\"og:description\" content=\"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l&#039;API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-10T13:48:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-10T12:06:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l&#039;API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Comment construire un Slackbot avec Node.js et l&rsquo;API Kinsta pour la gestion de site\",\"datePublished\":\"2023-08-10T13:48:53+00:00\",\"dateModified\":\"2023-11-10T12:06:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\"},\"wordCount\":4285,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\",\"name\":\"Comment construire un Slackbot avec Node.js et l'API Kinsta pour la gestion de site\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\",\"datePublished\":\"2023-08-10T13:48:53+00:00\",\"dateModified\":\"2023-11-10T12:06:39+00:00\",\"description\":\"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l'API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment construire un Slackbot avec Node.js et l&rsquo;API Kinsta pour la gestion de site\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment construire un Slackbot avec Node.js et l'API Kinsta pour la gestion de site","description":"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l'API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment construire un Slackbot avec Node.js et l'API Kinsta pour la gestion de site","og_description":"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l'API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.","og_url":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-08-10T13:48:53+00:00","article_modified_time":"2023-11-10T12:06:39+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l'API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Joel Olawanle","Dur\u00e9e de lecture estim\u00e9e":"22 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Comment construire un Slackbot avec Node.js et l&rsquo;API Kinsta pour la gestion de site","datePublished":"2023-08-10T13:48:53+00:00","dateModified":"2023-11-10T12:06:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/"},"wordCount":4285,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/","url":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/","name":"Comment construire un Slackbot avec Node.js et l'API Kinsta pour la gestion de site","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","datePublished":"2023-08-10T13:48:53+00:00","dateModified":"2023-11-10T12:06:39+00:00","description":"Apprenez \u00e0 cr\u00e9er un Slackbot propuls\u00e9 avec Node.js et l'API Kinsta pour rationaliser la gestion du site avec les commandes Slack slash.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/how-to-build-a-slackbot-with-node.js-and-kinsta-api-for-site-management-1.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Node.js","item":"https:\/\/kinsta.com\/fr\/sujets\/node-js\/"},{"@type":"ListItem","position":3,"name":"Comment construire un Slackbot avec Node.js et l&rsquo;API Kinsta pour la gestion de site"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=71830"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71830\/revisions"}],"predecessor-version":[{"id":72683,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71830\/revisions\/72683"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71830\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/71831"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=71830"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=71830"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=71830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}