040-22 86 65 28 frage@knowhere.to

Am 12.04.2016 hat Facebook auf der hauseigenen Entwicklerkonferenz F8 das Plattform SDK für die bereits im letzten Jahr vorgestellten Messenger Chatbots veröffentlicht. Das bedeutet eine Menge neuer Möglichkeiten für Unternehmen. Pizza bestellen via Messenger, News zu bestimmten Themen bekommen, einen Tisch im Restaurant um die Ecke reservieren oder ein Paket tracken. Die Öffnung des Messengers birgt großes Potenzial für externe Dienstleistungen. Im Folgenden beschreiben wir, wofür wir den Dienst nutzen und wie wir das angestellt haben.

Travel Agent im Messenger

Unser Bot ist eine Art kleines Reisebüro im Facebook-Messenger, dass personalisierte Reiseziele vorschlägt. Basierend auf unserer bereits bestehenden Technologie können wir User sehr viel einfacher erreichen als bisher. Die Messenger App wird von ca. 800.000.000 Menschen weltweit genutzt und die User sind mit der App vertraut. So können wir in einem bereits bekannten Umfeld den Benutzer mit Hilfe des Messengers zur nächsten Reise beraten. Die große Reichweite und die Möglichkeit automatisiert den Service zur Verfügung zu stellen sind ein guter Weg um unsere Idee voran zu treiben. Die Idee des automatisierten Reiseberaters ist nicht neu und wurde bereits mehrmals versucht umzusetzen, zum Beispiel von GoButler. Bisher musste der Kommunikationskanal über eine eigene App / Webseite oder einem SMS Dienst umgesetzt werden. Dies wird sich nun schlagartig ändern und diesen Unternehmen einen ganz neuen Start im Markt ermöglichen.

Tutorial zum eigenen Facebook Messenger Bot mit Node.js

Ein erster “Hello World” Facebook Messenger Bot ist schnell gemacht. Voraussetzung ist natürlich ein Facebook Account, eine Facebook Seite und eine Facebook App.

Den Bot selbst implementieren wir in Node.js, daher sind Grundkenntnisse in Javascript notwendig. In diesem Tutorial nutzen wir Heroko als Plattform. Wenn eine andere verwendet wird, müssen die unten genannten Schritte entsprechend angepasst werden.

1. Facebook App konfigurieren

Im Menü deiner erstellten Facebook App findest du nun nach Webhooks den Punkt Messenger. Hier gelangst du zur Messenger Plattform

Als nächstes suchst du unter Schlüsselgenerierung die Seite aus, in der der Bot integriert werden soll. Dafür authentifizierst du die Plattform für die Seite und erhältst einen Access Token für den Bot. Den brauchen wir später im Code um Nachrichten zu verschicken.

Webhooks auf der Messenger Plattform

Damit unser Bot von Facebook angesprochen wird, sobald eine Nachricht im Messenger vom Nutzer eingegeben wird, wird die gerade beliebte Methode der Webhooks genutzt. Dies ist eine Callback Url, welche von Facebook mit dem jeweiligen Daten aufgerufen wird. Hier registrieren wir später unsere Url, auf der unser Bot auf Ereignisse horcht.

2. Messenger Bot in Node.js

Für den Bot benötigen wir eine Callback URL für den Facebook Messenger. Für das Routing von Web Requests in unsere Bot Anwendnung nutzen wir das Fraemwork Express. Zum versenden von Nachrichten verwenden wir das Modul request. Damit haben wir auch schon die Hauptfunktionalität vom Bot abgedeckt. Wir bekommen mit, sobald uns jemand anschreibt und können wiederum den Nutzer anschreiben.

Wir setzen ein neues Projekt auf:

npm init

Folgende drei Module reichen für unseren Bot aus:

npm install express —-save
  npm install body-parser -—save
  npm install request -—save

Wir benötigen eine index.js und server.js

Zunächst initialisieren wir unseren Express App Server, index.js:

var app = require('express')();
  var bodyParser = require('body-parser');
  app.use(bodyParser.json());
  module.exports = app.listen(process.env.PORT || 3000);

Für den Server, der standardmäßig von npm start gestartet wird lassen wir unseren Express Server initialisieren, server.js:

require('.')

Nun implementieren wir den Webhook, die Callback URL auf die wir eingehende Nachrichten empfangen. In diesem Tutorial werden wir einfach den erhaltenden Text wieder zum Nutzer zurück schicken. Dafür registrieren wir die Route /messenger, Facebook ruft die Url per POST auf und schickt im Body die Daten als JSON mit, index.js:

app.post('/messenger', function(req, res) {
      var events = req.body.entry[0].messaging;
      events.forEach(function(event) {
        var senderId = event.sender.id;
        if (event.message && event.message.text) {
          // Verschickt die erhaltende Nachricht an den Nutzer zurück.
          sendTextMessage(senderId,  event.message.text);
        }
    });
    res.sendStatus(200);
  });

Später können wir in den Facebook App Einstellungen diese Route /messenger als Webhook registrieren. Dafür brauchen wir noch eine Route, die auf GET horcht, um die Authentifizierung des Webhooks durchzuführen.

var validationToken = 'myfacebookbot';
  app.get('/messenger', function(req, res) {
    if (req.query['hub.verify_token'] === validationToken) {
      res.send(req.query['hub.challenge']);
    } else {
      res.send('Wrong validation token');
    }
  });

Nun implementieren wir die Funktion sendTextMessage. Hier posten wir eine Nachricht per Messenger an den jeweiligen sender zurück.

var request = require('request');
  function sendTextMessage(sender, message) {
    var messageData = {
      text: message
    }
    var accessToken = 'your access token';
    request({
      url:  'https://graph.facebook.com/v2.6/me/messages',
      qs: {access_token:  accessToken},
      method: 'POST',
      json: {
        recipient: {id:sender},
        message: messageData,
      }
    }, function(error, response, body) {
      console.log('error');
    });
  }

Der AccessToken aus den Facebook App Einstellungen wird hier genutzt, um Nachrichten versenden zu dürfen.

Das ist schon alles an Code, was wir für unseren Beispiel Bot benötigen. Nun deployen wir ihn bei Heroku. Folgende Schritte sind notwendig:

git init

Dann legen wir noch eine .gitignore an, damit die installierten Node Module nicht ins Repository gepackt werden, .gitignore

node_modules

Mit installierter Heroku Toolbelt können wir nun die Heroku App erstellen. Dafür einfach folgenden Befehl ausführen

heroku create

Nun alle Dateien ins Repository committen:

git add .
  git commit -am "First Commit"

Und auf Heroku den Code deployen

git push heroku master

Es sollte nun in der Konsole bei Erfolg folgende Zeilen stehen:

Launching...
  remote:        Released v3
  remote:        https://(your app).herokuapp.com/ deployed to Heroku

Hier siehst du nun die Url, unter der deine App erreichbar ist. Nun gehen wir wieder in die Facebook App Einstellungen. Dort führen wir den Schritt Setup Webhook aus.

Als nächstes müssen wir die Events vom Messenger abonnieren. Dafür brauchen wir wieder den Access Token und können dies direkt aus der Konsole mithilfe von CURL machen

curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=your token"

Nun ist der Bot startklar und funktioniert. Einfach auf die Facebook Seite gehen, eine Nachricht schreiben und der Bot sollte mit der gleichen Nachricht antworten. Wie kann nun der Bot publik gemacht werden, sodass er auf alle Nutzer reagiert. Dafür muss der Bot erst von Facebook approved werden.

Approval

Das Einreichen des Bots bei Facebook ist schnell gemacht. Was aber etwas dauert ist der Approval-Prozess. Die App muss approved werden für die Send/Receive API pages_messaging wobei man sich an bestimmte Richtlinien halten muss. Keine Werbung (siehe), kein Spam und auch das kontaktieren von Benutzern ohne deren Einwilligung ist nicht erlaubt. Um dies sicherzustellen müsst ihr einen Screencast der App bei Facebook einreichen. In dem Video muss ersichtlich sein, wie der Bot kommuniziert und welche Möglichkeiten es gibt mit dem Bot zu interagieren.

Facebook belohnt einen dann mit folgender Meldung:

During the current beta period, the onboarding for the Messenger platform is limited to ensure the best user experience. Please be patient and check your dev alerts for updates; the approval may take up to several weeks. To make changes to this submission, click the Cancel Submission button.

 

? Keine News verpassen

Melde dich jetzt beim Messenger- oder E-Mail Newsletter an und verpasse keine Neuigkeiten zu Chatbots, Messenger Marketing und Sprachassistenten.

 News zu Chatbots & Messenger Marketing im Facebook Messenger  News zu Chatbots & Messenger Marketing per E-Mail

 

Über knowhere

Wir entwickeln intelligente Chatbots für diverse Plattformen und Skills bzw. Actions für Sprachassistenten. Egal ob Web-Widget, Facebook Messenger oder Amazon Alexa – Unsere Bots sind da im Einsatz wo Sie sie benötigen.

Die von uns entwickelten Bots eignen sich für unterschiedlichsten Einsatzbereiche wie z.B. First-Level Customer Support, Marketing Kampagnen oder E-Commerce Strategien. Unsere performante Entwicklung ist darauf ausgelegt, dass Sie Ihren Chatbot einfach auf unterschiedliche Plattformen anbieten können. Dank künstlicher Intelligenz lernt Ihr Chatbot ständig dazu und kann mehr und mehr Aufgaben lösen und so Prozesse gezielt vereinfachen.

Mit unserer flexiblen Softwareplattform für Dialog-gesteuerte Automatisierungen können wir schnell und zuverlässig Lösungen aufsetzen und sie an Ihre Anforderungen anpassen. Das anschließende Qualitätsmanagement und Training wird ebenfalls von uns überwacht. Diesen Prozess haben wir bereits für eine Vielzahl an Kunden umgesetzt. Ob Marketing-, Beratungs- oder Kundenservices: Conversational Interfaces sind ein erfolgreiches Mittel der Kommunikation.

knowhere – make it conversational