Erstellen Sie diesen Slack-Bot und verleihen Sie Ihrem Kanal eine freundlichere Atmosphäre.
Wenn Sie neue Benutzer auf Ihrem Kanal willkommen heißen, fühlen sie sich wie zu Hause, aber den Überblick über jeden Benutzer zu behalten, der beitritt, kann eine mühsame Aufgabe sein. Hier kommt ein Begrüßungs-Bot von Slack ins Spiel. Der Bot sendet eine personalisierte Willkommensnachricht an jeden neuen Kanalbenutzer. Es ist immer online, daher gibt es keine späten Willkommensnachrichten.
Sie erfahren, wie Sie die Anmeldeinformationen Ihres Bots einrichten, Ereignisse in Slack abhören und Nachrichten an Benutzer zurücksenden.
Erstellen eines Slack-Bots und Abrufen seines API-Tokens
Ein... kreieren Slack-Konto oder melden Sie sich bei Ihrem bestehenden an. Erstellen Sie dann eine neuer Slack-Arbeitsbereich um Ihren Bot zu testen, bevor Sie ihn in Ihrem aktiven Arbeitsbereich installieren.
Melden Sie sich in Ihrem neuen Arbeitsbereich an. Slack erstellt automatisch einen zufälligen und allgemeinen Kanal für dich.
Beachten Sie den App-Bereich unten links im Arbeitsbereich. Hier erscheint unser Bot, wenn Sie ihn erstellen. Navigieren Sie zu Slack-API-Website.
Klicke auf Erstellen Sie eine App. Erstellen Sie die App Von Grund auf neu im erscheinenden Fenster.
Benennen Sie Ihre App und wählen Sie den Arbeitsbereich aus, in dem Sie sie entwickeln möchten.
Klicken Sie dann auf die App erstellen Taste. Wenn Sie darauf klicken, werden Sie auf eine Seite weitergeleitet, die die grundlegenden Informationen Ihrer App enthält. Notieren Sie sich das Signaturgeheimnis unter den App-Anmeldeinformationen. Ihr Bot verwendet das Signaturgeheimnis, um zu überprüfen, ob ein Ereignis von Slack stammt und während der Übertragung nicht manipuliert wurde.
Gehen Sie zur Funktion OAuth & Berechtigungen.
Navigieren Sie unter OAuth & Berechtigungen zu Bot Token Scopes. Hier fügen Sie die Berechtigungen dazu hinzu, was Ihr Bot in Ihrem Arbeitsbereich tun kann. Ergänzen Sie die Benutzer: lesen Umfang. Dieser Bereich ermöglicht es Ihrem Bot, die Personen in Ihrem Arbeitsbereich anzuzeigen. Fügen Sie außerdem die hinzu chatten: schreiben Bereich, der es Ihrem Bot ermöglicht, Nachrichten an den Arbeitsbereich zu senden.
Navigieren Sie zurück zu den grundlegenden Informationen Ihres Bots und klicken Sie auf In Workspace installieren.
Klicken Sie auf der nächsten angezeigten Seite auf Zulassen. Sie sind nun mit der Installation des Bots in Ihrem Arbeitsbereich fertig. Navigieren Sie zur Funktion OAuth & Berechtigungen. Notieren Sie sich das Bot-Benutzer-OAuth-Token, das Slack nach der Installation generiert. Der Bot wird im App-Bereich Ihres Arbeitsbereichs angezeigt.
Nachdem Sie den Bot in Ihrem Arbeitsbereich installiert haben, können Sie den Code schreiben, um ihn zu steuern.
Vorbereiten Ihrer Umgebung
Sie müssen sich mit dem auskennen Grundlagen von Python um diesen Codebeispielen zu folgen.
Erstellen Sie eine neue virtuelle Umgebung und ein .env Datei. Sie verwenden die .env-Datei, um Ihr Token und Ihr Signaturgeheimnis zu speichern, das Sie geheim halten müssen. Sie sollten die .env-Datei nicht auf eine öffentliche Plattform hochladen.
Führen Sie den folgenden Befehl in einem Terminal aus, um die erforderlichen Bibliotheken zu installieren:
pip installiere slack-sdk pathlib dotenv Flask slackeventsapi
Die slack-sdk-Bibliothek bietet Ihnen Tools zum Erstellen von Slack-Apps und -Integrationen, einschließlich API-Methoden, Web-API-Clients und OAuth. pathlib und dotenv helfen Ihnen beim Laden der Umgebungsvariablen. Flask hilft Ihnen bei der Bearbeitung der HTTP-Anforderungen und -Antworten. slackeventsapi stellt Ihnen einen Ereignis-Listener zur Verfügung, der Ereignisse von Slack empfängt und verarbeitet.
Der vollständige Quellcode ist verfügbar in a GitHub-Repository.
Importieren der erforderlichen Bibliotheken
Erstellen Sie eine neue Python-Datei und importieren Sie zunächst die zuvor installierten Bibliotheken, damit Sie deren Funktionalität in Ihrem Code verwenden können.
importieren slack_sdk als locker
importieren os
aus pathlib importieren Weg
aus dotenv importieren load_dotenv
aus Flasche importieren Flasche
aus lockereventsapi importieren SlackEventAdapter
Das os-Modul von Python wird mit der Sprache geliefert, sodass Sie sie nicht installieren müssen. SlackEventAdapter ist eine Klasse aus dem slackeventsapi-Modul, das Ereignisse von der Slack-API verarbeitet.
Einrichten des Slack-Bots
Erstellen Sie zwei Variablen in der .env-Datei. Benennen Sie ein SLACK_BOT_TOKEN und weisen Sie ihm das OAuth-Token des Bot-Benutzers zu. Benennen Sie das andere SLACK_SIGNING_SECRET und weisen Sie ihm das Signaturgeheimnis zu. Gehen Sie zurück zur Python-Datei und erstellen Sie ein Flask-Objekt. Laden Sie dann die Umgebungsvariablen aus der .env-Datei mit der Funktion load_dotenv aus dem dotenv-Modul.
app = Flasche (__name__)
env_path = Pfad ('.') / '.env'
load_dotenv (dotenv_path=env_path)
Erstellen Sie eine slack_event_adapter-Instanz. Es verarbeitet Ereignisse von der Slack-API und verwendet die Umgebungsvariable SLACK_SIGNING_SECRET, um Anforderungen zu authentifizieren.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/events', Anwendung)
/slack/events ist der Endpunkt, den die Slack-API zum Senden von Ereignissen verwendet.
Erstellen Sie eine WebClient-Instanz, die Nachrichten an die Slack-API sendet. Führen Sie einen API-Aufruf durch, um die ID des Bots abzurufen.
Kunde = locker. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['Benutzer-ID']
Richten Sie die Nachricht ein, die Sie an die neuen Benutzer senden, die einem Kanal beitreten. Initialisieren Sie einen leeren Satz, der die begrüßten Benutzer verfolgt.
GREETING_MESSAGE = „Hallo {user_name}, willkommen bei {channel_name}“ \
"Kanal! Wir freuen uns, Sie hier zu haben."
welcome_users = set()
Sie können die Begrüßung nach Ihren Wünschen anpassen.
Erstellen einer Funktion zur Behandlung des Ereignisses „Mitglieder beigetretenem Kanal“.
Richten Sie einen Ereignis-Listener ein. Es wird auf das Ereignis member_joined_channel lauschen.
@slack_event_adapter.on('member_joined_channel')
Definieren Sie eine Funktion, die Sie aufrufen, wenn ein Benutzer einem Kanal beitritt. Verwenden Sie die Funktion, um die Benutzer-ID und die Kanal-ID aus den Ereignisdaten zu extrahieren. Überprüfen Sie, ob der Benutzer neu im Kanal ist. Wenn nicht, rufen Sie die Benutzer- und Kanalinformationen mithilfe der WebClient-Klasse ab. Erstellen Sie eine personalisierte Begrüßungsnachricht. Senden Sie die Begrüßung an den Kanal
defhandle_member_joined_channel(event_daten):
user_id = event_data['Fall']['Benutzer']
channel_id = event_data['Fall']['Kanal']# Senden Sie nur eine Willkommensnachricht, wenn der Benutzer neu ist
Wenn Benutzer-ID nichtIn willkommene_benutzer:
welcome_users.add (Benutzer-ID)user_info = client.users_info (user=user_id)
user_name = user_info['Benutzer']['Name']channel_info = client.conversations_info (channel=channel_id)
Kanalname = Kanalinfo['Kanal']['Name']Gruß = GRUSS_MESSAGE.format (Benutzername=Benutzername,
Kanalname=Kanalname)
client.chat_postMessage (Kanal=Kanal_ID, Text=Begrüßung)
Die event_data enthält alle Informationen über das Ereignis, bei dem ein Benutzer einem Kanal beigetreten ist.
Starten Sie die Flask-App und führen Sie das Skript aus. Wenn es als Hauptprogramm ausgeführt wird (nicht als Modul importiert), im Debug-Modus ausführen und auf Port 5000 lauschen.
Wenn __name__ == "__hauptsächlich__":
app.run (debug=WAHR, port=5000)
Der Debug-Modus lädt die Anwendung automatisch neu, wenn Sie Änderungen am Code vornehmen. Verwenden Sie den Debugmodus nicht in einer Produktionsumgebung, da er vertrauliche Informationen offenlegen und Ihre Anwendung anfällig für Angriffe machen kann. Führen Sie Ihre App aus. Es wird als lokaler Server auf Port 5000 ausgeführt.
Verbinden der Logik mit Ihrem Bot
Nachdem Sie die Logik erstellt haben, müssen Sie sich nun mit dem Bot in Ihrem Arbeitsbereich verbinden. Dadurch kann es diese Logik verwenden, um Operationen in Ihrem Arbeitsbereich auszuführen. Beginnen Sie mit dem Herunterladen und Ausführen Ngrok. Ngrok hilft Ihnen dabei, Ihren lokalen Webserver dem Internet zugänglich zu machen.
Verwenden Sie nach dem Ausführen den folgenden Befehl, um die Adresse Ihres lokalen Servers der von Ngrok zuzuordnen.
ngrok http 500
Kopieren Sie die Ngrok-Adresse, die Ihrem lokalen Host zugeordnet ist.
Navigieren Sie zur Slack-API-Website. Unter dem Veranstaltungsabonnements Funktion, Ereignisse aktivieren. Unter Anfrage-URL Geben Sie die Ngrok-Adresse gefolgt von ein /slack/events. Dies zeigt auf Ihren Endpunkt.
Dann abonnieren Sie das member_joined_channel-Event. Dadurch wird Ihr Bot jedes Mal benachrichtigt, wenn ein Benutzer einem Kanal beitritt. Klicke auf Änderungen speichern. Slack fügt automatisch die Bereiche hinzu, die Sie zum Abonnieren dieses Events benötigen. Jedes Mal, wenn Sie einen Bereich ändern, müssen Sie Ihre App im Arbeitsbereich neu installieren.
Klicken Sie auf App neu installieren.
Testen Ihres Bots
Gehen Sie zu Ihrem Arbeitsplatz. Gehen Sie zu dem Kanal, auf dem Sie den Bot verwenden möchten. Senden Sie eine direkte Nachricht an den Bot. Zum Beispiel @Welcoming Bot. Eine Aufforderung zum Hinzufügen des Bots zum Kanal wird angezeigt. Klicken Sie auf Hinzufügen.
Jetzt sendet der Bot jedes Mal, wenn ein neuer Benutzer dem Kanal beitritt, eine Willkommensnachricht.
Das obige Bild zeigt den Bot, der einen neuen Benutzer im Kanal begrüßt.
Machen Sie das Beste aus Ihrem Slack-Workspace
Slack-Bots sind nicht die einzige Möglichkeit, die Funktionalität der Slack-Messaging-Plattform zu erweitern. Die andere Methode besteht darin, Tools von Drittanbietern in Slack zu integrieren. Sie bieten zusätzliche Funktionalität innerhalb der Plattform.
Mache dich mit diesen Integrationen vertraut, da sie deine Produktivität in Slack steigern werden.