Fermer

avril 30, 2019

Construire une application souple en 10 minutes avec MongoDB Stitch –


Cet article a été publié à l'origine sur MongoDB . Merci de soutenir les partenaires qui rendent SitePoint possible.

Slack est non seulement la startup la plus florissante de l'histoire mais c'est également une application du même nom et l'un des outils de communication les plus utilisés. aujourd'hui. Chez MongoDB, nous l’utilisons beaucoup pour favoriser des communications efficaces entre les équipes et à travers l’entreprise. Nous ne sommes pas seuls. Il semble que tous les développeurs que je rencontre l'utilisent également dans leur entreprise.

Une chose intéressante à propos de Slack (et il y en a beaucoup) est son extensibilité. Vous pouvez étendre Slack de plusieurs manières. Construire des chatbots, des applications qui s’interfacent avec le service de communication et étendre Slack à travers l’introduction de commandes supplémentaires appelées «commandes slash», qui permettent aux utilisateurs de Slack de communiquer avec des services externes. Dans cet article, nous allons créer une commande slash simple permettant aux utilisateurs de stocker et de récupérer des données dans et depuis une base de données MongoDB. Je recherche toujours sur Internet des informations intéressantes que je souhaite partager avec les membres de mon équipe. Construisons donc une application que nous appellerons URL Stash . Cette application stockera les URL intéressantes pour les récupérer ultérieurement via une commande slack slash. Maintenant, suivez la vidéo ci-dessous ou sautez la vidéo et continuez pour les détails.

Créer une application de jeu

Commencez par vous connecter à votre équipe de jeux, ou vous pouvez en créer une nouvelle pour la tester. Visitez la Console d'API Slack pour créer une nouvelle application Slack

 Création d'une application Slack

Vous aurez besoin d'une équipe Slack ou d'une instance où nous pourrons installer test URL Stash. Je vais utiliser l’instance MongoDB Community Slack . Une fois l'application créée dans notre espace de travail d'équipe, vous pouvez mettre l'application Slack de côté pour le moment et créer l'autre moitié de l'application, à savoir l'application MongoDB Atlas Cluster, Base de données, Collections et Stitch.

Créer un cluster, une base de données et une collection Atlas

Le stockage des URL implique que nous ayons besoin d'un emplacement pour les stocker. Pour cet exemple, nous allons montrer à quel point il est facile d’utiliser MongoDB Atlas pour ce faire. Nous commencerons par nous connecter à MongoDB Atlas, pour créer un cluster une base de données et une collection. Vous pouvez démarrer gratuitement et créer un instance de cluster de classe M0 . Une fois que vous avez lancé votre cluster, créez une base de données et une collection à l’aide du visualiseur de collections d’Atlas. J'ai appelé les miens exampledb et exemplecoll mais vous pouvez appeler le vôtre comme bon vous semble. Vous devrez simplement vous assurer de les référencer correctement dans la fonction que nous allons créer dans Stitch dans la section suivante.

 Création d'une base de données MongoDB Atlas

Création d'une application Stitch

Les applications Stitch sont associés à des clusters spécifiques, une fois que vous avez créé votre cluster, vous pouvez cliquer sur Applications Stitch dans le menu de navigation de gauche dans Atlas, puis sur Créer une nouvelle application.

 Création d'une application Stitch

Créer un service [19659005] Les services Stitch constituent un point d’intégration primordial avec le monde extérieur – dans ce cas, Slack. Créons un service HTTP qui fournira le point d’intégration entre Slack et Stitch.

Cliquez sur Services, Ajouter un nouveau service, Cliquez sur HTTP et nommez le service. Cliquez sur Ajouter un service. Ensuite, dans l’onglet Paramètres, attribuez un nom significatif à l’accès Webhook entrant. J'ai choisi «slack» mais vous pouvez nommer ce que vous voulez. Le Webhook fournira une adresse Web externe qui sera connectée à votre application Slack.

En branchant cet URI Webhook, votre application Slack enverra certains détails de la conversation de Slack à votre application Stitch nouvellement créée.

Une fois que vous avez cliqué sur Enregistrer, votre Webhook nouvellement créé se verra attribuer un URI public. Vous aurez également la possibilité de modifier le code JavaScript qui sera exécuté lors de l'envoi d'une demande à votre Webhook. Vous voudrez peut-être copier l'URL Webhook, car vous en aurez besoin bientôt lorsque nous créerons une commande slack slash.

 Configuration de Webhook

C'est là que la magie opère. En quelques minutes, nous avons créé une intégration entre Slack et Stitch. Le simple fait de définir une configuration (nommer) pour votre service est tout ce qui est nécessaire. Portons maintenant notre attention sur le code que nous utiliserons pour stocker et récupérer les URL de nos utilisateurs de Slack.

Le cœur d'un Stitch Service est la fonction exécutée lorsqu'il reçoit une demande entrante via son URL Webhook. Dans ce cas, nous avons choisi de répondre aux demandes POST. Dans Slack, nous enverrons les données d’une commande slash via POST à ​​notre fonction Stitch. Nous évaluerons le texte que l'utilisateur envoie dans le cadre de la commande slash et cachera soit une URL, soit la liste des URL existantes qui ont été précédemment cachées.

 The Heart of Slack / Stitch 19659003] Comme la fonction reçoit les détails de Slack, nous activerons un simple jeu de commandes après la commande slash elle-même. Nous voulons que les utilisateurs puissent stocker les URL, nous allons donc utiliser le format de commande:

/ url stash https% 3A% 2F% 2Fwww.sitepoint.com

Et depuis Si vous voulez que les utilisateurs puissent consulter les URL précédemment cachées, nous activerons l'option "liste":

/ url list

Et enfin, puisque nous voulons Pour que les utilisateurs puissent supprimer les URL qu'ils ont ajoutées précédemment, nous activerons l'option «supprimer»:

/ url supprimer https% 3A% 2F% 2Fwww.sitepoint.com

Avec ces commandes de base en tête, écrivons du code JavaScript de base pour la fonction dans notre service:

 exports = async function (payload) {
   const mongodb = context.services.get ("mongodb-atlas");
   const exemplepledb = mongodb.db ("exemplepledb");
   const examplecoll = exampledb.collection ("examplecoll");

   const args = payload.query.text.split ("");

   commutateur (args [0]) {
       cas "caché":
           const result = wait examplecoll.insertOne ({
               user_id: payload.query.user_id,
               quand: Date.now (),
               url: args [1]
           });
           si (résultat) {
               revenir {
                   texte: `Stashed $ {args [1]}`
               };
           }
           revenir {
               texte: `Erreur stashing`
           };
       case "liste":
           const findresult = wait examplecoll.find ({}). toArray ();
           const strres = findresult.map (x => `<${x.url}|${x.url}> de <@${x.user_id}> à $ {new Date (x.when) .toLocaleString ()}`) .join (" n");
           revenir {
               text: `Stash à partir de $ {new Date (). toLocaleString ()}  n $ {strres}`
           };
       cas "enlever":
           const delresult = wait examplecoll.deleteOne ({
               identifiant d'utilisateur: {
                   $ eq: payload.query.user_id
               },
               url: {
                   $ eq: args [1]
               }
           });
           revenir {
               text: `Supprimé $ {delresult.deletedCount} éléments cachés`
           };
       défaut:
           revenir {
               texte: "non reconnu"
           };
   }
}

Exemple de fonction pour le service HTTP Slack dans Stitch

Le cœur de notre fonction est l'instruction switch qui évalue le texte envoyé à la commande par l'utilisateur Slack.

Créer une commande slash

. 19659005] Terminons l'étape finale du processus et ajoutons une commande slash à notre application Slack. Pour ce faire, revenez sur la console de l'application Slack et cliquez sur «Commande du slash».

 Création d'une commande de slash "title =" Création d'une commande de slash

Création d'une commande de slash in Slack

Nommez votre commande slash. N'oubliez pas que vous devez récupérer l'URI Webhook du service MongoDB Stitch que nous avons créé dans la section précédente ci-dessus. Une fois que vous avez sauvegardé cette barre oblique, sélectionnez Installer votre application dans la barre de navigation de gauche de la console de gestion de Slack.

 Installation de l'application Slack "title =" Installation de l'application Slack

Install App

Vous serez alors invité à confirmer votre identité et à autoriser l’application à être utilisée dans votre espace de travail.

 Autorisation de l’application "title =" Autorisation de l’application [19659003] Autoriser l'installation de l'application

Une fois cette opération terminée, votre application est presque prête. Vous pouvez revenir à votre client Slack, visiter votre canal de discussion personnel pour plus de confidentialité pendant que vous testez et taper votre nouvelle commande slack slash. Par exemple, “/ url stash http://mongodb.com” . Appuyez sur Entrée pour envoyer la commande à Slack, puis à votre nouvelle application Stitch.

 Interagir avec l'application

C'est aussi simple que cela, vous avez créé un Chatbot totalement fonctionnel, ou au moins une commande slash avec seulement quelques-uns lignes de code et aucun serveur impliqué!

Il ne s'agit que d'un point de départ et vous devriez désormais pouvoir facilement créer des fonctionnalités supplémentaires dans votre nouvelle application Slack. Pour revoir plus de détails et relancer le projet, rendez-vous dans le référentiel GitHub .




Source link