Skip to content

Bot Slack pour planifier l'écoute de vidéos éducatifs.

License

Notifications You must be signed in to change notification settings

collectifrivage/educabot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Éducabot

Bot Slack pour planifier l'écoute de vidéos éducatifs.

Add to Slack

Pour développer

Résumé technologique

Le bot est bâti avec Azure Functions. Les fonctions sont séparées dans 4 fichiers selon leur utilité:

  • BotActions.cs contient une seule fonction, DispatchAction qui est appelée par Slack lors d'un clic sur un bouton ou la soumission d'un dialogue. La fonction vérifie le type d'intéractivité et le bouton ou dialogue spécifique et appel la bonne méthode pour gérer l'action.
  • BotCommands.cs contient les fonctions qui sont appelées lorsqu'une slash command est reçue.
  • BotTimers.cs contient les fonctions qui sont appelées selon un horaire pré-défini.
  • BotSetup.cs contient le callback appelé lors de l'installation de l'application.

Azure Table Storage est utilisé pour tous les besoins de stockage.

Pré-requis

Configuration de votre environnement

  • Créez une nouvelle app Slack dans votre workspace de test.
  • Dans la section Basic Information, notez les Client ID, Client Secret, et Signing Secret.
  • Clonez le repository, ouvrez la solution dans Visual Studio et ajoutez un fichier à la racine du projet nommé local.settings.json avec le contenu suivant (en substituant les valeurs notées précédement):
    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "WEBSITE_TIME_ZONE": "Eastern Standard Time",
        "ClientId": "<VOTRE CLIENT ID>", 
        "ClientSecret": "<VOTRE CLIENT SECRET>", 
        "SigningSecret": "<VOTRE SIGNING SECRET>"
      }
    }
  • Exécutez l'application (exemple, en appuyant sur F5), assurez-vous qu'elle démarre avec succès
  • Dans une ligne de commande, exécutez ngrok http 7071 (7071 est le port par défaut en développement).
  • Notez le nom de domaine assigné par ngrok (quelque chose comme http://<ID RANDOM>.ngrok.io)
  • De retour dans votre app Slack, allez dans la section Interactive Components, activez la feature, et entrez l'URL suivante: http://<ID RANDOM>.ngrok.io/api/slack/action-endpoint. N'oubliez pas de sauvegarder.
  • Allez dans Slash Commands, et créez les commandes suivantes:
    • Commande: /edu:propose, URL: http://<ID RANDOM>.ngrok.io/api/slack/commands/propose
    • Commande: /edu:list, URL: http://<ID RANDOM>.ngrok.io/api/slack/commands/list
    • Commande: /edu:plan, URL: http://<ID RANDOM>.ngrok.io/api/slack/commands/plan
    • Commande: /edu:next, URL: http://<ID RANDOM>.ngrok.io/api/slack/commands/next
  • Allez dans OAuth & Permissions et ajoutez le redirect URL: http://<ID RANDOM>.ngrok.io/api/install.
  • Toujours dans OAuth & Permissions, assurez vous d'avoir les scopes suivants: chat:write:bot et commands.
  • Finalement dans Manage Distribution vous devriez voir un bouton Add to Slack. Cliquez dessus et autorisez l'application pour votre workspace de test. Si tout s'est bien passé, vous devriez voir le texte All set!. Vous devriez maintenant être en mesure d'utiliser le bot dans votre workspace.

Attention: ngrok vous assignera un nouveau domaine à chaque fois que vous exécutez l'outil. Il faudra donc retourner dans les paramètres de votre app pour changer les URLs à chaque fois. Je sais, c'est plate, mais c'est comme ça :P

About

Bot Slack pour planifier l'écoute de vidéos éducatifs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages