Slack ist ein praktisches und beliebtes Tool, das Sie mit Ihren eigenen Befehlen erweitern können, die auf Ihre Organisation zugeschnitten sind.

Slack ist ein Tool, mit dem Teams kommunizieren und zusammenarbeiten können. Eines seiner Hauptmerkmale ist die Verwendung von Slash-Befehlen. Diese Befehle lösen bestimmte Aktionen oder Integrationen innerhalb der Plattform aus.

Während Slack Ihnen mehrere integrierte Slash-Befehle zur Verfügung stellt, können Sie mithilfe der API von Slack benutzerdefinierte Befehle erstellen. Anschließend können Sie den benutzerdefinierten Befehl so konfigurieren, dass er eine bestimmte Aufgabe ausführt, wenn ein Benutzer ihn auslöst.

Warum einen benutzerdefinierten Slash-Befehl in Slack erstellen?

Die integrierten Slash-Befehle von Slack entsprechen möglicherweise nicht den spezifischen Anforderungen Ihres Teams oder Ihrer Organisation. Indem Sie benutzerdefinierte Slash-Befehle erstellen, können Sie eine personalisiertere Erfahrung für Ihr Team schaffen. Dies wiederum erhöht das Engagement des Teams.

Einrichten einer Slack-App

Um durchzukommen, sollten Sie mit dem vertraut sein grundlegende Verwendung von Slack. Melde dich im Browser bei deinem Slack-Konto an und erstelle einen neuen Workspace. Sie verwenden diesen Arbeitsbereich, um Ihre Apps zu testen, bevor Sie sie im Arbeitsbereich Ihres Teams verwenden.

Öffnen Sie einen weiteren Tab und navigieren Sie zu Slack-API-Website.

Klick auf das Erstellen Sie eine App Taste. Wählen Sie auf der nächsten angezeigten Seite die Option zum Erstellen einer App aus Von Grund auf neu.

Benennen Sie die App und wählen Sie den Arbeitsbereich aus, in dem die App ausgeführt werden soll.

Drücke den App erstellen Taste. Dadurch werden Sie zu einer Seite weitergeleitet, die grundlegende Informationen zu Ihrer App enthält.

Navigieren Sie im Abschnitt „Features“ zu „ OAuth & Berechtigungen Funktion, und scrollen Sie dann nach unten zu Bot-Token-Bereiche. Füge hinzu ein chatten: schreiben Spielraum für Ihre App. Dieser Bereich ermöglicht es Ihrer App, Nachrichten an den Arbeitsbereich zu senden.

Scrollen Sie nach oben zu OAuth-Token für Ihren Arbeitsbereich Abschnitt, und klicken Sie auf die In Workspace installieren Taste.

Klicken Sie auf der nächsten angezeigten Seite auf die Erlauben Taste. Dadurch wird die App in Ihrem Arbeitsbereich installiert.

Erstellen eines benutzerdefinierten Slash-Befehls mit der Slack-API

Nachdem Sie die Slack-App eingerichtet haben, müssen Sie einen benutzerdefinierten Befehl für die Aufgabe erstellen, die Sie ausführen möchten. Beispielsweise ein Slash-Befehl, der dem Benutzer einen Witz zurückgibt. Navigieren Sie zu Slash-Befehle Besonderheit. Klick auf das Neuen Befehl erstellen Taste.

Füllen Sie die aus Befehl, Anfrage-URL, Und kurze Beschreibung des Befehls, den Sie erstellen möchten. Die Anfrage-URL ist der Endpunkt, an den Slack eine POST-Anfrage sendet, wenn ein Benutzer den Befehl auslöst. Verwenden Sie eine localhost-URL als Platzhalter; Sie werden diese URL später ändern.

Klicke auf Speichern. Wenn du speicherst, fügt Slack automatisch einen Befehlsbereich für deine App hinzu. Dieser Bereich ermöglicht Ihrer App das Hinzufügen von Verknüpfungen und Slash-Befehlen, die Personen in Ihrem Arbeitsbereich verwenden können. Wenn Sie die Bereiche ändern, müssen Sie die App neu installieren. Klick auf das Installieren Sie Ihre App neu Taste.

Klicken Sie auf der Seite, die als Nächstes angezeigt wird, auf Neuinstallation der App in Ihrem Workspace zulassen.

Konfigurieren des Verhaltens des Slash-Befehls

Starten Sie eine beliebige Python-IDE. Erstellen Sie eine neue virtuelle Umgebung. Erstellen Sie eine neue Python-Datei und eine neue .env-Datei. Führen Sie auf dem Terminal den folgenden Befehl aus, um die erforderlichen Bibliotheken zu installieren.

pip install python-dotenv fordert Flask slack-bolt an

Der python-dotenv Mit der Bibliothek können Sie die Umgebungsvariablen in die .env-Datei laden. Der Anfragen Mit der Bibliothek können Sie HTTP-Anforderungen stellen und Flasche verarbeitet eingehende HTTP-Anforderungen und gibt Antworten zurück. Lockerer Bolzen behandelt eingehende Slack-Anfragen.

Öffnen Sie die .env-Datei und erstellen Sie zwei Umgebungsvariablen. Benenne sie BOT_TOKEN Und UNTERZEICHNUNG_GEHEIM bzw. Navigieren Sie zur Slack-API-Website. Unter Ihrer App Grundinformation Kopieren Sie das Signaturgeheimnis und verwenden Sie es zum Initialisieren der BOT_TOKEN-Variablen. Navigieren Sie zur Funktion „OAuth & Berechtigungen“ und kopieren Sie das Bot-Benutzer-OAuth-Token. Verwenden Sie es, um die Variable SIGNING_SECRET zu initialisieren.

Das Bot-Token ist eine eindeutige Kennung, die deine App bei API-Aufrufen mit der API von Slack authentifiziert. Das Signaturgeheimnis überprüft, ob eingehende Anfragen an Ihre App von Slack stammen.

Der vollständige Quellcode ist verfügbar in a GitHub-Repository.

Importieren Sie die erforderlichen Bibliotheken und Module.

importieren os
aus pathlib importieren Weg
aus dotenv importieren load_dotenv
importieren Anfragen
aus Flasche importieren Flasche, Anfrage, jsonify
aus locker_bolt importieren App
aus slack_bolt.adapter.flask importieren SlackRequestHandler

Erstellen Sie eine neue Instanz einer Flask-Anwendung.

app = Flasche (__name__)

Laden Sie die Umgebungsvariablen aus der .env-Datei mit der load_dotenv() Funktion.

env_path = Pfad ('.') / '.env'
load_dotenv (dotenv_path=env_path)

Erstellen Sie mithilfe von eine neue Instanz einer Slack-App App Klasse aus der slack_bolt-Bibliothek.

slack_app = App(
token=os.environ['BOT_TOKEN'],
signing_secret=os.environ['SIGNING_SECRET']
)

Erstellen Sie eine Routing-Handler-Funktion, die eingehende Anforderungen an die verarbeitet /slack/command Endpunkt. Wenn der Endpunkt eine empfängt POST Anfrage, analysiert es die Anfragetextdaten. Es wird dann überprüft, ob der Befehl ist /joke. Wenn ja, ruft es die get_joke() -Funktion und gibt eine JSON-Antwort mit dem Ergebnis des Befehls an Slack zurück.

@app.route("/slack/command", methoden=["POST"])
defBefehl():
# Körperdaten der Anforderung parsen
data = Anfrage.Formular

# Rufen Sie die entsprechende Funktion basierend auf dem Slash-Befehl auf
Wenn Daten["Befehl"] == "/scherzen":
Nachricht = get_joke()
anders:
Nachricht = f"Ungültiger Befehl: {Daten['Befehl']}"

# Antwort an Slack zurücksenden
zurückkehren jsonify({"Text": Nachricht})

Erstellen Sie eine Funktion, die eine GET-Anfrage an die sendet icanhazdadjoke API zum Abrufen eines zufälligen Witzes im JSON-Format. Es gibt dann den Witz als Zeichenfolge zurück.

defget_joke():
url = " https://icanhazdadjoke.com/"
Überschriften = {"Akzeptieren": "Anwendung/json"}
Antwort = Anfragen.get (URL, Header=Header, Timeout=5)
Witz = Antwort.json()["scherzen"]
zurückkehren scherzen

Erstellen Sie eine neue Instanz von a SlackRequestHandler Objekt, das eingehende Anfragen von Slack verarbeitet.

handler = SlackRequestHandler (slack_app)

Überprüfen Sie, ob das Skript direkt ausgeführt wird, und starten Sie gegebenenfalls die Flask-Anwendung auf Port 5000.

Wenn __name__ == "__hauptsächlich__":
# Starten Sie die Flask-App auf Port 5000
app.run (port=5000, debug=WAHR)

Führen Sie das Programm aus, um den Server zu starten, der auf localhost ausgeführt wird.

Damit das Programm mit Slack kommunizieren kann, benötigen Sie eine URL, auf die es über das Internet zugreifen kann. Herunterladen und ausführen ngrok. Der Mit der ngrok-Software können Sie eine sichere öffentliche URL erstellen das den Datenverkehr zu einem Webserver tunnelt, der auf Ihrem Computer ausgeführt wird.

Führen Sie den folgenden Befehl aus, um die öffentliche URL abzurufen:

ngrok http 5000

Das Bild unten zeigt die öffentliche URL auf ngrok, weiß hervorgehoben.

Kopieren Sie die URL und navigieren Sie zur Slack-API-Website. Klick auf das Slash-Befehle Besonderheit. Bearbeiten Sie den Befehl /joke und ersetzen Sie den Platzhalter der Anforderungs-URL durch Ihre öffentliche URL. Fügen Sie /slack/events am Ende der URL hinzu, um auf Ihren Endpunkt zu verweisen.

Gehen Sie zu Ihrem Arbeitsbereich, geben Sie den Befehl /joke ein und senden Sie ihn. Sie sollten einen Witz als Antwort sehen:

Machen Sie sich mit anderen Slack-Funktionen vertraut

Slack hat viele Funktionen zu bieten, die über Slash-Befehle hinausgehen. Wenn Sie sich mit diesen Funktionen vertraut machen, werden Sie verstehen, wie sie funktionieren.

Sie können dann nach Möglichkeiten suchen, sie an die Anforderungen Ihres Arbeitsbereichs anzupassen. Dadurch steigern Sie die Produktivität Ihres Teams.