Erstellen Sie einen Sentiment-Bot in Slack mit Node.js und der Textanalyse-API von Symanto

sentiment-bot-in-Slack

Wir zeigen Ihnen, wie Sie das Sentiment-Modell von Symanto nutzen können, um einen Slack-Bot mit Node.js zu erstellen.

Am Ende dieses Tutorials wissen Sie, wie Sie einen Slack-Bot einrichten und den Schreibstil des Nutzers mit Symantos psycholinguistischer Textanalyse-API analysieren können, um verschiedene Aspekte seiner Nachrichten zu verstehen: die Sprache der Nachricht, die allgemeine Stimmung, die Emotionen, die der Nutzer ausgedrückt hat, und sogar die Art und Weise, wie die Nutzer sprechen. Zum Beispiel, ob sie persönliche Gefühle teilen oder objektive und sachliche Informationen ausdrücken.

Unsere endgültige Anwendung sieht etwa so aus:

Das Setup

Zuerst müssen wir eine neue Slack-App erstellen. Gehen wir zum Slack-API-Portal und klicken wir auf „Create an App“. Geben Sie Ihrer neuen App einen Namen; wir nennen sie „FirstTestApp“. Wählen Sie dann Ihren Slack Workspace aus, in dem Sie Ihre neue App erstellen möchten.

Klicken Sie anschließend im linken Menü auf „OAuth & Permissions“ und scrollen Sie nach unten zu „Scopes“, um die folgenden OAuth Scopes für Bot Token Scopes hinzuzufügen:

  • chat:write (damit der Bot Nachrichten senden kann)
  • channels:history (damit der Bot Nachrichten in öffentlichen Channels sehen kann, zu denen er hinzugefügt wurde)
  • users:read (um die Daten der Nutzer zu lesen und auf ihre Benutzernamen zuzugreifen)

Scrollen Sie anschließend wieder nach oben und klicken Sie auf die Option „Install App to Workspace“, damit die App die Berechtigung für den Zugriff auf Ihren Workspace anfordern kann. Sie erhalten einen „Bot User OAuth Access Token“. Kopieren Sie diesen Token und speichern Sie ihn für später.

Navigieren Sie anschließend zu „Basic Information“ und speichern Sie den „Signing Secret Key“.

Erstellen Sie Ihr node.js-Projekt

Zuerst erstellen Sie einen neuen Ordner „FirstTestApp“. In diesem Ordner erstellen Sie eine neue Datei mit dem Namen „.env“ und fügen Sie die folgenden Einstellungen ein:

Als nächstes fügen Sie Ihren Signing Secret Key zu SLACK_SIGNING_SECRET und Ihr Bot User OAuth Access Token zu SLACK_ACCESS_TOKEN hinzu. Schließlich erhalten Sie Ihren kostenlosen API-Key, indem Sie sich im Symanto Developer Portal anmelden und ihn in API_KEY einfügen.

Downloaden Sie node.jsfalls Sie dies noch nicht getan haben, öffnen Sie das Befehlstool node.js und navigieren Sie zum Stammverzeichnis in Ihrem Entwicklungsordner. Geben Sie „npm init“ ein und beantworten Sie die Fragen, um eine package.json-Datei zu erstellen. Öffnen Sie dann package.json und fügen Sie „start“ : „node index.js“ in den Abschnitt scripts ein.

Der nächste Schritt ist die Installation der notwendigen Projektabhängigkeiten mit npm install:

  • Axios (Promise-basierter HTTP-Client für den Browser und node.js)
  • Express (ein minimales und flexibles node.js-Webapplikations-Framework, das einen robusten Satz von Funktionen für Web- und mobile Anwendungen bietet)
  • Body-parser (Parsen eingehender Request-Bodies in einer Middleware vor den Handlern)
  • Dotenv (ein abhängigkeitsfreies Modul, das Umgebungsvariablen aus einer .env-Datei lädt)

Ihre package.json sollte in etwa so aussehen:

Erstellen Sie dann eine neue Datei „index.js“ in Ihrem Stammverzeichnis. Kopieren Sie den folgenden Code in Ihre Datei:

Starten wir unseren Server, indem wir npm start eingeben.

Erstellen Sie eine Request-URL

Nachdem wir nun unseren Server gestartet haben, erstellen wir eine Request-URL, die Slack verwendet, um HTTP-POST-Anfragen zu senden, wenn Ereignisse auftreten.

Navigieren Sie zunächst im Slack-API-Portal zu „Event Subscriptions“ und aktivieren Sie Ereignisse.

Wenn Sie es noch nicht getan haben, downloaden und installieren Sie ngrok, um die Request-URL zu erstellen. Ngrok generiert eine sichere URL zu Ihrem Localhost-Server. Bitte beachten Sie, dass diese URL nur für einen kurzen Zeitraum gültig ist und nur zu Testzwecken verwendet werden sollte. Öffnen Sie das ngrok-Terminal und geben Sie „ngrok.exe http 80“ ein, um Port 80 freizugeben. Es sollte in etwa so aussehen:

Kopieren Sie entweder den http- oder den https-Forwarding-Link und fügen Sie ihn in das Feld „Request URL“ ein, gefolgt von /events. Sie sollte jetzt überprüft werden. Scrollen Sie dann nach unten und klicken Sie auf „Add Bot User Event“, um message.channels hinzuzufügen.

Super! Unser Server läuft nun und ist mit Slack verbunden. Jetzt können wir den Bot mit der API verbinden.

Rufen Sie die Textanalyse-API von Symanto auf

In diesem Teil zeigen wir Ihnen, wie Sie den Sentiment-Endpunkt der Textanalyse-API aufrufen können, um die Stimmung der Nutzer zu ermitteln. Wenn Sie mehr über die verschiedenen Endpunkte der Textanalyse-API von Symanto erfahren möchten, besuchen Sie das Symanto Developer Portal und die API-Dokumentation.

Legen wir los. Wir verwenden die axios-Bibliothek, um einen Post-Request zu erstellen. Hier ist der Beispielcode der analyzeTextByDLApi-Funktion, die einen Text erhält und den Sentiment-Endpunkt aufruft.

Dann können wir diese Funktion im Event Call Back aufrufen. Dieses Event wird ausgelöst, wenn ein Nutzer etwas in einen Channel schreibt.

Wie Sie im Code sehen können, rufen wir nach dem Aufruf von Symantos Sentiment Detection Endpunkt die Slack-API auf, um die Ergebnisse im Slack-Channel zu posten (chat.postmessage).

Jetzt können Sie Ihre node.js-App ausführen und den Bot zu einem Ihrer Kanäle hinzufügen. Probieren wir es aus: Schreiben Sie etwas in den Kanal und sehen Sie, wie es funktioniert.

Bravo, das haben Sie gut gemacht! Sie haben gerade Ihren ersten Slack-Bot mithilfe der Textanalyse-API von Symanto erstellt.

Auf Github ansehen

Zusammenfassung

So, das war’s! Das ist der einfachste Weg vom Nichts zu einer funktionierenden Slack-App, die die psycholinguistische Textanalyse-API von Symanto anwendet. Sie haben gelernt, wie man einen Bot in Slack erstellt und wie man den Sentiment-Endpunkt aufruft.

Wir empfehlen Ihnen, einen Blick auf den Endpunkt zur Spracherkennung zu werfen, um die Sprache der Nachricht eines Nutzers automatisch zu erkennen, bevor sie an einen anderen Endpunkt gesendet wird. Spielen Sie auch mit der Emotions- oder Persönlichkeitserkennung, um erweiterte Funktionen zu entwickeln. Viel Spaß beim Programmieren!