Skip to content
Bot Slack pour planifier l'écoute de vidéos éducatifs.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Educabot
.gitignore
Educabot.sln
LICENSE
README.md

README.md

É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

You can’t perform that action at this time.