24. Oktober 2017 · von Joerg Sager

Wie baut man einen Microsoft Teams Bot?

Persönliche Assistenten sind das neue Thema in der Unternehmenskommunikation und gehen einher mit der Digitalisierung von Prozessen. Immer mehr setzt man im Intranet auf intelligente Sprachbots, welche alle alltäglichen Fragen beantworten können. Wo finde ich das Reisekostenformular? Wo kann ich Urlaub einreichen? Doch wie realisiert man das technisch?


Microsoft Teams, welches im Jahr 2017 sein Release feierte, ist eine große Collabrationslösung, welche die Zusammenarbeit in Teams und im Unternehmen fördern soll. Microsoft Teams Logo - Gate4 Man kann in Microsoft Teams über sogenannte Connectoren alle möglichen Drittsysteme einbinden. Ein großer Teil besteht auch aus der Kommunikation über Chat-Textsprache. Viele kennen das: Bevor ich 70 Seiten Handbuch durchblättere, um meine Frage zu beantworten, frage ich lieber mal eben den Kollegen.

Jeder erkennt schnell – dieses kostet nicht nur den Kollegen immer mal wieder viel Zeit, sondern stört auch Arbeitsprozesse. Also liegt die Lösung nah: Ein kleiner Sprachassistenten, welcher versteht was ich möchte und mir sofort die Antwort liefern kann.

In diesem Beispiel zeige ich auf, wie man einen einfachen Sprachassistenten (ein sogenannter Microsoft Teams Bot) für Teams baut, welcher mit mir in eine einfache interaktive Kommunikation geht. Dieser kann selbstverständlich nach belieben erweitert werden.

Vorbereitung für die Entwicklung

Technologisch bietet Microsoft verschiedene Möglichkeiten, um einen Bot zu entwickeln. Als Basis dient das von Microsoft entwickelte Bot Framework . Das Bot Builder SDK kommt für .NET oder Node.Js. In diesem Beispiel werden wir den Bot mit Node.Js entwickeln.

Falls Node.Js noch nicht vorliegt, muss Node.Js installiert werden. Download von Node.Js: https://nodejs.org/de/download/

Als nächstes erstellen wir einen Ordner, in dem unserer Bot die Quellcodedateien speichert. Wir müssen nun zu diesem Ordner mit einer Command-Prompt / Console navigieren und folgenden Befehl ausführen:

npm install --save botbuilder
npm install --save restify

Gate4 Microsoft Teams Bot

Um später unseren Bot testen zu können ohne diesen direkt bereitzustellen, laden wir noch den Bot Framework Emulator. Download von Bot Framework Emulator: https://github.com/Microsoft/BotFramework-Emulator/releases/

Die Vorbereitung unseres Bots ist nun abgeschlossen und wir können mit der Entwicklung anfangen.

Microsoft Teams Bot entwickeln

In dem Ordner, welchen wir während der Vorbereitungsphase erstellt haben, erstellen wir eine Datei namens: Bot.js.

Wir öffnen nun diese Datei mit einem Editor der Wahl. Ich benutze Visual Studio Code, welches eine kleine schlanke Entwicklungsumgebung von Microsoft ist. Visual Studio Code bringt Debugger und andere wichtige Features zur Entwicklung mit. Selbstverständlich kann auch Notepad++ oder Notepad verwendet werden.

Nun erstellen wir in dieser Datei das Skelett des Microsoft Teams Bot.

// Registrierung der benötigten Module
var restify = require('restify');
var builder = require('botbuilder');

// Erstellen des Service-Endpunkt-Servers, welcher standardmäßig auf Port 3978 horcht.
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});

// Konfiguration für das Bot Framework, wenn es bereitgestellt ist
var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

// Registrieren des Service-Endpunktes für unseren Webservice
server.post('/api/nachrichten', connector.listen());

// Verarbeiten der eingehenden Nachrichten
var bot = new builder.UniversalBot(connector, function (session) {
    console.log("[DEBUG]: Username: $(session.message.user.name) Text: $(session.message.text)");
    // Verarbeiten von Nachrichten. Prüfung auf die Wörter "hallo" und "hilfe"
    if(session.message.text.toLowerCase() === "hallo"){
        session.send("Hallo, %s.", session.message.user.name);
    }else if(session.message.text.toLowerCase() == "hilfe"){
        // Ausgabe mit Formatierung im Markdown-Format.
        session.send("Hier `zum Beispiel` **einige** möglichen Befehle: \n\n * Frage mich dazu einfach: Wie viel Urlaubstage habe ich noch? \n * Du kannst mich begrüßen mit dem Wort \"Hallo\".");
    }else{
        session.send("Ich habe dich leider nicht verstanden, tipp doch mal \"hilfe\" ein.");
    }
});

Microsoft Teams Bot Code

Unser Bot reagiert jetzt auf folgende Sprachbefehle:

  • Hallo
  • Hilfe

Dieses kann um verschiedenste Sprachbefehle oder Webservices erweitern werden. Fragt zum Beispiel jemand: „Wie viel Urlaubstage habe ich noch?“, dann kann der Webservice vom Personalsystem angefragt werden, um die Anzahl an Urlaubstagen zu ermitteln.

Technisch ist der Bot in erster Linie ein Webservice, welcher Befehle erhält und dann eine Antwort bereitstellt. Diese werden durch das Botframework SDK so aufbereitet, dass diese Befehle und Antworten als Kommunikation in den verschiedensten Technologien genutzt werden kann. Ob ich jetzt diesen Bot in Microsoft Teams, Skype, Slack, oder Facebook Messenger einsetze spielt keine Rolle. Unser Bot funktioniert in allen Welten, dank der gleichen Technologie Basis.

Microsoft Teams Bot testen

Zum Testen müssen wir den heruntergeladenen Bot Framework Emulator installieren, falls noch nicht geschehen, und danach starten.

Wenn das Programm geöffnet ist müssen wir den Bot starten mit dem Befehl:

node Bot.js

Starting Microsoft Teams Bot

Das Programm gibt aus, dass der Service auf den Port 3978 horcht. Damit ist unsere Url, welche wir für den Bot Framework Emulator brauchen folgende:

http://localhost:3978/api/nachrichten

Wie im Code festgelegt ist /api/nachrichten unser Endpunkt. Nun geben wir diese Url in das dafür vorgesehene Feld im Bot Framework Channel Emulator ein und drücken auf „CONNECT“. Eine Microsoft App ID oder ein Microsoft App Password muss zu diesem Zeitpunkt nicht eingegeben werden.

Microsoft Teams Bot Emulator

Nachdem wir verbunden sind können wir nun anfangen mit dem Bot zu chatten. In unserem Code haben wir die Sprachbefehle „hallo“ und „hilfe“ definiert, welche jetzt ganz normal wie in einem klassischen Chat benutzt werden könnnen. Unser Bot antwortet dann sofort ohne Verzögerung.

Microsoft Teams Bot Emulator Chat

Unser erster Microsoft Teams Bot ist nun entwickelt und kann verwendet werden. Ich hoffe dieses kleine Coding-Tutorial hat euch gefallen und ich freue mich über euer Feedback in dem Kommentaren.

Wie Ihr den Microsoft Teams Bot bereitstellen könnt seht ihr im folgenden Beitrag: Wie stellt man einen Microsoft Teams Bot bereit?

Schaut euch doch solange die anderen Artikel rund um Microsoft Teams an.



Diesen Blogeintrag bewerten:

4 Stimmen mit durchschnittlich 4.5/5 Punkten

Haben Sie Fragen zu diesem Artikel oder brauchen Sie Unterstützung?

Nehmen Sie mit uns Kontakt auf!

Wir unterstützen Sie gerne bei Ihren Vorhaben!


Schreibe einen Kommentar

Kontakt.
Lassen Sie sich von uns beraten
Wir freuen uns über Ihr Interesse an unseren Leistungen. Hinterlassen Sie
uns Ihren Namen, Ihre Telefonnummer und E-Mail Adresse – wir melden
uns schnellstmöglich bei Ihnen.
Kontakt aufnehmen