Une application pour votre espace Slack

Description

Dans ce projet, vous allez créer un bot pour votre espace Slack : un bot se présente comme un utilisateur Slack avec lequel on peut interagir, et qui permet d’apporter de nombreuses fonctionnalités aux utilisateurs·trices de cet espace.

Contraintes

  • Durée: 2 semaines
  • Langage: libre

Notions abordées

  • Webhooks et API
  • Authentification OAuth

Plénières

  • Création d’un bot pour discord en JS ou en python

Orientation du projet

Je débute

Dans cette version du projet, le bot va servir à automatiser une action qui est faite régulièrement par des membres actuel·les de notre espace Slack.
Il pourra par exemple :

  • faire un rappel tous les jours à 17:20 pour indiquer que c’est l’heure de la journalisation - et rappeler ce qu’apporte le fait de tenir un journal
  • rappeler régulièrement pendant les horaires de la journée de faire une pause, boire de l’eau et s’étirer

Nous allons pour cela utiliser les « webhooks » proposés par Slack, afin de pouvoir poster des messages sur le channel Slack de notre choix sans avoir besoin de gérer la notion d’authentification.

Etapes possibles pour se lancer :

1 - Comprendre les webhooks Slack
En utilisant la documentation donnée en ressource et en faisant des recherches sur Internet, essayez de comprendre comment fonctionnent les webhooks par rapport à une API.

2 - Tester la publication sur Slack
En utilisant des outils comme curl ou Postman, essayez d’envoyer une publication vers le channel Slack de test mentionné dans les ressources. Comment pouvez-vous mettre en forme votre publication, y ajouter des emojis, des images ?

3 - Ecrire un programme
Il s’agit désormais d’écrire du code qui reproduise l’action que vous avez fait manuellement à l’étape (2). Quelles sont les contraintes que vous avez dans le choix du langage et de l’environnement ? Comment ce code devra-t-il être exécuté ?

4 - Automatiser le programme
Votre programme désormais écrit et fonctionnel, il faudra que celui-ci puisse se lancer à l’intervalle et dans la tranche horaire que vous avez choisis : selon le langage et l’environnement que vous avez choisi, cherchez sur internet comment vous pouvez automatiser cette tâche pour qu’elle se lance automatiquement.

Ressources

La documentation Slack sur les webhooks : https://api.slack.com/messaging/webhooks#posting_with_webhooks

Objectifs pédagogiques

  • Découvrir une documentation
  • Chercher des exemples de code
  • Comprendre ce qu’est un webhook et comment s’en servir
  • Mettre en forme du contenu pour être accepté par un service tiers
  • Ecrire du code capable de faire des requêtes de façon autonome et gérer les cas d’erreur
  • Automatiser l’appel d’un bout de code à intervalle régulier

Je suis à l’aise avec certains langages

Dans cette version, votre Bot sera interactif : il posera des questions aux membres de l’espace Slack, et proposera ensuite un résumé des réponses.
Par exemple, il pourrait s’adresser à chaque membre de l’espace pour leur demander où est-ce qu’il·els mangent ce midi, et poster à l’heure du déjeuner un récapitulatif des réponses reçues.

Contrairement au niveau 1, ce niveau implique d’utiliser l’API complète de Slack et non les webhooks évoqués plus haut. Quelques questions pour vous orienter:

  • Quelle est la séquence d’actions que votre Bot doit faire ?
  • Qu’est-ce qui les provoque ?
  • Quelles sont les autorisations nécessaires pour chacune de ces actions ?
Ressources

Je veux aller plus loin

Ce niveau reprend les principes du niveau 2 (utilisation de l’API complète avec authentification OAuth) avec un cas d’utilisation plus poussé. Votre Bot va en effet interagir avec une base de données, qui sera lue ou modifiée en fonction du choix de l’utilisateur·trice.
Par exemple, votre bot pourrait raconter des blagues extraites d’une base de données, ou accepter qu’on lui en apprenne une nouvelle.

Ressources générales

  • Un channel Slack a été mis en place pour vos tests : https://ada-tech-school.slack.com/archives/C01A4GEDKJ5
  • Trois applications Slack ont été créés pour vous donner accès aux fonctionnalités proposées par Slack [merci de vous rapprocher de l’équipe d’encadrement pour configurer votre application]

2 messages ont été fusionnés à un sujet existant : 2020-08-31 - Une application pour votre espace Slack