Créez ce bot mou et donnez à votre chaîne une ambiance plus conviviale.
Accueillir de nouveaux utilisateurs sur votre chaîne les fait se sentir chez eux, mais garder une trace de chaque utilisateur qui se joint peut être une tâche fastidieuse. C'est là qu'intervient un robot d'accueil Slack. Le bot envoie un message de bienvenue personnalisé à chaque nouvel utilisateur du canal. Il est toujours en ligne, il n'y aura donc pas de messages de bienvenue en retard.
Vous apprendrez à configurer les informations d'identification de votre bot, à écouter les événements dans Slack et à renvoyer des messages aux utilisateurs.
Créer un bot Slack et obtenir son jeton API
Créer un Compte Slack ou connectez-vous à votre existant. Créez ensuite un nouvel espace de travail Slack pour tester votre bot avant de l'installer dans votre espace de travail actif.
Connectez-vous à votre nouvel espace de travail. Slack crée automatiquement un canal aléatoire et général pour vous.
Remarquez la section App en bas à gauche de l'espace de travail. C'est là que notre bot apparaîtra lorsque vous le créerez. Naviguez vers le
Site Web de l'API Slack.Cliquer sur Créer une application. Créer l'application De zéro dans la fenêtre qui apparaît.
Nommez votre application et sélectionnez l'espace de travail dans lequel vous souhaitez la développer.
Cliquez ensuite sur le Créer une application bouton. Un clic vous redirigera vers une page contenant les informations de base de votre application. Prenez note du secret de signature sous les informations d'identification de l'application. Votre bot utilisera le secret de signature pour vérifier qu'un événement provient de Slack et n'a pas été falsifié lors de la transmission.
Accédez à la fonctionnalité OAuth et autorisations.
Sous OAuth et autorisations, accédez à Bot Token Scopes. C'est ici que vous ajouterez les autorisations de ce que votre bot peut faire dans votre espace de travail. Ajouter le utilisateurs: lire portée. Cette étendue permettra à votre bot de voir les personnes présentes dans votre espace de travail. Aussi, ajoutez le discuter: écrire étendue qui permettra à votre bot d'envoyer des messages à l'espace de travail.
Revenez aux informations de base de votre bot et cliquez sur Installer sur l'espace de travail.
Cliquez sur Autoriser sur la page suivante qui s'affiche. Vous avez maintenant terminé l'installation du bot dans votre espace de travail. Accédez à la fonctionnalité OAuth et autorisations. Prenez note du jeton OAuth de l'utilisateur du bot que Slack génère après l'installation. Le bot sera visible dans la section application de votre espace de travail.
Maintenant que vous avez installé le bot dans votre espace de travail, vous pouvez écrire le code pour le contrôler.
Préparation de votre environnement
Vous devez vous familiariser avec le bases de Python suivre ces exemples de code.
Créer un nouvel environnement virtuel et un .env déposer. Vous utiliserez le fichier .env pour stocker votre jeton et votre secret de signature, que vous devez garder confidentiels. Vous ne devez pas télécharger le fichier .env sur une plate-forme publique.
Exécutez la commande suivante dans un terminal pour installer les bibliothèques requises :
pip installer slack-sdk pathlib dotenv flask slackeventsapi
La bibliothèque slack-sdk vous fournira des outils pour créer des applications et des intégrations Slack, y compris des méthodes API, des clients API Web et OAuth. pathlib et dotenv vous aideront à charger les variables d'environnement. flask vous aidera à gérer les requêtes et les réponses HTTP. slackeventsapi vous fournira un écouteur d'événements qui reçoit et gère les événements de Slack.
Le code source complet est disponible dans un Référentiel GitHub.
Importation des bibliothèques requises
Créez un nouveau fichier Python et commencez par importer les bibliothèques que vous avez installées précédemment, afin de pouvoir utiliser leurs fonctionnalités dans votre code.
importer slack_sdk comme mou
importer os
depuis pathlib importer Chemin
depuis dotenv importer load_dotenv
depuis ballon importer Ballon
depuis slackeventsapi importer SlackEventAdapter
Le module os de Python est livré avec la langue, vous n'avez donc pas besoin de l'installer. SlackEventAdapter est une classe du module slackeventsapi qui gère les événements de l'API Slack.
Configuration du bot Slack
Créez deux variables dans le fichier .env. Nommez un SLACK_BOT_TOKEN et attribuez-lui le jeton OAuth de l'utilisateur du bot. Nommez l'autre SLACK_SIGNING_SECRET et attribuez-lui le secret de signature. Revenez au fichier Python et créez un objet Flask. Chargez ensuite les variables d'environnement à partir du fichier .env à l'aide de la fonction load_dotenv du module dotenv.
app = flacon (__nom__)
env_path = Chemin('.') / '.env'
load_dotenv (dotenv_path=env_path)
Créez une instance slack_event_adapter. Il gérera les événements de l'API Slack, en utilisant la variable d'environnement SLACK_SIGNING_SECRET pour authentifier les requêtes.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/events', application)
/slack/events est le point de terminaison que l'API Slack utilisera pour envoyer des événements.
Créez une instance WebClient qui enverra des messages à l'API Slack. Effectuez un appel API pour récupérer l'ID du bot.
client = mou. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['ID de l'utilisateur']
Configurez le message que vous enverrez aux nouveaux utilisateurs qui rejoignent un canal. Initialisez un ensemble vide qui gardera une trace des utilisateurs accueillis.
GREETING_MESSAGE = "Bonjour {user_name}, bienvenue sur {channel_name}" \
"canaliser! Nous sommes ravis de vous avoir ici."
welcome_users = set()
Vous pouvez personnaliser le message d'accueil à votre guise.
Création d'une fonction pour gérer l'événement "Membre rejoint le canal"
Configurez un écouteur d'événement. Il écoutera l'événement member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Définissez une fonction que vous appellerez lorsqu'un utilisateur rejoindra un canal. Utilisez la fonction pour extraire l'ID utilisateur et l'ID de canal des données d'événement. Vérifiez si l'utilisateur est nouveau sur le canal. Si ce n'est pas le cas, récupérez les informations sur l'utilisateur et le canal à l'aide de la classe WebClient. Créez un message d'accueil personnalisé. Envoyer le message d'accueil au canal
définitivementhandle_member_joined_channel(données_événement):
user_id = event_data['événement']['utilisateur']
channel_id = event_data['événement']['canaliser']# N'envoyez un message de bienvenue que si l'utilisateur est nouveau
si ID de l'utilisateur pasdans welcome_users :
welcome_users.add (identifiant_utilisateur)user_info = client.users_info (user=user_id)
nom_utilisateur = informations_utilisateur['utilisateur']['nom']channel_info = client.conversations_info (channel=channel_id)
nom_canal = info_canal['canaliser']['nom']salutation = GREETING_MESSAGE.format (user_name=user_name,
nom_canal=nom_canal)
client.chat_postMessage (channel=channel_id, text=greeting)
Le event_data contient toutes les informations sur l'événement dans lequel un utilisateur a rejoint un canal.
Démarrez l'application Flask et exécutez le script. S'il est exécuté en tant que programme principal (non importé en tant que module), exécutez-le en mode débogage et écoutez sur le port 5000.
si __nom__ == "__principal__":
app.run (débogage=Vrai,port=5000)
Le mode débogage recharge automatiquement l'application lorsque vous apportez des modifications au code. N'utilisez pas le mode débogage dans un environnement de production, il peut exposer des informations sensibles et rendre votre application vulnérable aux attaques. Exécutez votre application. Il fonctionnera en tant que serveur local sur le port 5000.
Connecter la logique avec votre bot
Après avoir créé la logique, vous devez maintenant vous connecter au bot dans votre espace de travail. Cela lui permettra d'utiliser cette logique pour effectuer des opérations dans votre espace de travail. Commencez par télécharger et exécuter Ngrok. Ngrok vous aidera à exposer votre serveur Web local à Internet.
Après l'avoir exécuté, utilisez la commande suivante pour mapper l'adresse de votre serveur local à celle de Ngrok.
ngrok http 500
Copiez l'adresse Ngrok qui correspond à votre hôte local.
Accédez au site Web de l'API Slack. Sous le Abonnements aux événements fonctionnalité, activer les événements. Sous URL de la demande entrez l'adresse Ngrok suivie de /slack/events. Cela pointera vers votre point de terminaison.
Abonnez-vous ensuite à l'événement member_joined_channel. Cela informera votre bot chaque fois qu'un utilisateur rejoindra un canal. Cliquer sur Sauvegarder les modifications. Slack ajoutera automatiquement les étendues dont vous avez besoin pour vous abonner à cet événement. Chaque fois que vous modifiez une portée, vous devrez réinstaller votre application dans l'espace de travail.
Cliquez sur réinstaller votre application.
Tester votre robot
Accédez à votre espace de travail. Accédez au canal sur lequel vous souhaitez utiliser le bot. Envoyez un message direct au bot. Par exemple @Welcoming Bot. Une invite pour ajouter le bot au canal apparaîtra. Cliquez sur ajouter.
Désormais, chaque fois qu'un nouvel utilisateur rejoint le canal, le bot enverra un message de bienvenue.
L'image ci-dessus montre le bot accueillant un nouvel utilisateur sur le canal.
Tirer le meilleur parti de votre espace de travail Slack
Les bots Slack ne sont pas le seul moyen d'étendre les fonctionnalités de la plateforme de messagerie Slack. L'autre méthode consiste à intégrer des outils tiers à Slack. Ils fournissent des fonctionnalités supplémentaires au sein de la plate-forme.
Familiarisez-vous avec ces intégrations car elles augmenteront votre productivité dans Slack.