
Les intégrations permettent d’ajouter des fonctionnalités à Slack. Il en existe quatre types : les incomings webhooks, outgoing webhooks, les slash commands et les bots users. À chacun correspond un usage bien précis :
Si Zizou réagit à un mot-clé précis, ce n’est pas forcément le cas de tous les outgoing hook : ils peuvent également réagir à n’importe quel message posté dans un channel, si ce dernier leur a été assigné à leur création.
Petit tableau récapitulatif :
Intégrations
Pour quoi faire ?
A fournir à la création
A récupérer à la création
Incoming webhook
Envoyer des notifications sur Slack
Nom du channel cible
Webhook URL
Outcoming webhook
Appeler un service externe
Channel cible et/ou mot(s)
déclencheur(s)
URL
Token
Slack command
Appeler un service externe
Nom d’appel
URL
Token
Bot user
Interagir avec les utilisateurs
API token
Toutes les intégrations apparaissent, visuellement, comme des utilisateurs ; on peut notamment modifier leur nom et leur avatar.
Slack met à disposition une Web API pour enrichir les intégrations. Elle expose un ensemble de méthodes qui permettent d’effectuer des actions variées, comme récupérer l’email des utilisateur de sa team ou archiver un channel. Ces méthodes sont rassemblées dans des scopes. Par exemple, le scope user:read contient les méthodes qui permettent de lister les utilisateurs, lire les informations d’un utilisateur et voir s’il est disponible ou pas.
Slack propose également la Real Time Messaging API, basée sur WebSocket. Elle sert essentiellement aux bot users, qui, une fois connectés au serveur, peuvent recevoir des évènements de la part de Slack. Ces évènements, qui surviennent pour à peu près tout ce qu’il peut se passer sur Slack (un utilisateur écrit un message, un fichier a été chargé, un channel a été créé, etc), peuvent ensuite être traités programmatiquement.
Pour interroger ces APIs, il faut avoir l’autorisation de le faire, et donc posséder les bons tokens. Les bot users possèdent leur propre token ; pour les autres intégrations, il faut passer par l’interface de génération de tokens pour en obtenir un.
Les intégrations permettent d’ajouter des services utilisables par sa propre team. Mais dès qu’on souhaite les diffuser auprès de personnes externes, il devient nécessaire de créer une application. Celle-ci permettra de combiner plusieurs intégrations, et d’accéder aux informations d’une autre team que la sienne.
Dans le cas de Tony, nous voulions également pouvoir ajouter des services complémentaires à la consultation du calendrier des salles de réunion. Nous avons donc décidé d’en faire une application pour les regrouper. Une fois qu’un utilisateur a donné la permission à Tony de consulter les mêmes agendas Google que lui, il a accès aux fonctionnalités suivantes :
La création d’une application est simple : il suffit de passer par le formulaire mis à disposition par Slack, de choisir un nom pour l’application et de la décrire.
Slack met à disposition un bouton (le Slack button), qui s’insère sur une page web et sur lequel l’utilisateur cliquera pour ajouter l’application à sa team. Il sera alors redirigé vers une page particulière, sur laquelle il lui sera demandé de s’authentifier. Il pourra ensuite accepter un certain nombre de permissions demandées par l’application, ce qui enclenchera le processus d’obtention d’un token (protocole OAuth).
A la fin du processus d’inscription au service, l’application peut accéder aux informations de l’utilisateur qui l’a autorisée, « en son nom » , sans qu’il ait besoin de s’authentifier à chaque fois, à l’aide du token (qui n’expire jamais).
A ce stade, Slack propose également de publier l’application dans leur App Directory. De la même manière que le Play Store ou l’App Store, l’App Directory permet aux utilisateurs de découvrir plus facilement une application, et donc peut vous amener un plus grand nombre d’utilisateurs. Le formulaire de soumission d’une application est disponible depuis l’interface de gestion des applications.
Outre le nom du développeur et le Client ID de l’application, quelques informations sont à fournir :
Une fois le formulaire envoyé, l’équipe de Slack se chargera de le valider ou non. Dans tous les cas, cette étape n’est absolument pas obligatoire pour que d’autres personnes puissent installer l’application !
Il ne vous reste plus qu’à intégrer votre bouton Slack sur votre site, comme ceci :
Add to Slack
Et voilà, votre application peut être installée par n’importe quelle team Slack !
Slack met à disposition un processus simple et efficace pour diffuser les intégrations à travers une application : si la partie logique de votre application est déjà toute prête, il suffit d’implémenter une interface pour la “brancher” à Slack. Dans notre cas, Tony est disponible sur Slack, mais nous discutions déjà avec lui par l’intermédiaire d’Amazon Echo !
Si cela vous a donné envie de construire votre propre application, rendez-vous ici.
Si vous avez des questions, ou même des suggestions pour Tony, n’hésitez pas à nous contacter sur Twitter, nous serons ravis de vous répondre.