Chat-Erweiterungen


Mit Chat-Erweiterungen können Bots interaktive, soziale Features anbieten, die Nutzer direkt in ihren Unterhaltungen aufrufen können.
INHALT
  1. Übersicht
  2. Eingabefeld-Einstiegspunkt konfigurieren
  3. Teilen
  4. Nutzer-ID und Thread-Kontext abrufen
  5. Berechtigungsverwaltung
  6. Tipps und Best Practices
  7. FAQ und Problembehebung

Übersicht

Interaktionsmodell

Chat-Erweiterungen erscheinen im Eingabefeld in Messenger, wenn ein Nutzer mit dem jeweiligen Bot interagiert hat.

Wenn der Nutzer auf das Symbol der Chat-Erweiterung tippt, wird eine vom Entwickler angegebene Webansichts-UI geöffnet. Der Nutzer kann dann Inhalt erstellen oder auswählen, der im Thread geteilt wird. Die im Thread geteilte Nachricht kann Bilder, Links und mehr enthalten.

Wenn Nutzer in der Gruppe mit auf diese Weise geteilten Nachrichten interagieren, hat der Entwickler Zugriff auf Kontextinformationen zum Thread. Außerdem kann er Berechtigungen anfragen und alle anderen Aktionen im JavaScript-SDK für Messenger-Erweiterungen ausführen.

Potenzielle Anwendungsfälle

  • Ausdruck: Erstelle Sticker oder Memes direkt in Messenger. Teile Lieder, Videos oder andere Inhalte.
  • Medien: Sende Stories zu Themen, die du verfolgst, zeitnah an die Gruppe.
  • Handel: Anordnung und Planung von Gruppen
  • Produktivität: Sende Updates von Aufgaben-Trackern, und bearbeite Dokumente gemeinsam mit anderen.
  • Unterhaltung: Erstelle Spiele oder Gruppen-Challenges.

Beispielprojekt

Der Open-Source-Bot TaskBot präsentiert alle hier beschriebenen Features.


In Messenger ausprobieren →Github-Repository →

Eingabefeld-Einstiegspunkt konfigurieren

Damit dein Bot im Eingabefeld der Personen erscheint, die ihn hinzugefügt haben, musst du seine Ausgangs-URL festlegen.

Wenn deine Chat-Erweiterung noch nicht für den Launch bereit ist, achte darauf, in_test auf true zu setzen, damit sie anderen Nutzern als Entwicklern erst angezeigt wird, wenn sie bereit ist.

Mehr dazu →

Teilen

Die Messenger-Plattform unterstützt das benutzerdefinierte Teilen von der Webansicht. Damit können Entwickler eine personalisierte Nachricht und ein eigenes Ziel für Nachrichten angeben, die über ihren Bot geteilt werden.

Diese Features wurden durch mehrere Verbesserungen ergänzt, damit sie mit Chat-Erweiterungen funktionieren. Das solltet ihr wissen:

Teilen im aktuellen Thread

Die beginShareFlow()-Funktion umfasst einen mode-Parameter, der jetzt den current_thread-Modus unterstützt. Damit kann der Nutzer Inhalte in dem Thread teilen, aus dem er die Chat-Erweiterung aufgerufen hat, anstatt einen anderen Thread auswählen zu müssen. Die meisten Entwickler verwenden den current_thread-Modus für das Innere der Erweiterung selbst.

In manchen Situationen möchtest du vielleicht prüfen, ob dieser Modus von der Messenger-Version des Nutzers unterstützt wird. Verwende die getSupportedFeatures()-Methode und suche den Schlüssel "sharing_direct", um sicher zu sein.

Reaktion auf geteilte Inhalte

Der success-Rückruf für beginShareFlow() wird unabhängig davon aufgerufen, ob der Nutzer den Teilvorgang bestätigt oder abbricht, sofern kein Fehler aufgetreten ist.

Messenger übergibt jetzt das is_sent-Feld in der Antwort auf den success-Rückruf, das angibt, ob eine Nachricht tatsächlich gesendet wurde.

Wenn der Nutzer den Inhalt geteilt hat, solltest du das Fenster schließen, wenn du fertig bist, oder den Nutzer zum nächsten Teil des Vorgangs leiten.

<script> 
    var messageToShare = { ... };
      
    MessengerExtensions.beginShareFlow(function success(response) {
      if(response.is_sent === true){ 
      	// User shared. We're done here!
      	MessengerExtensions.requestCloseBrowser();
      }
      else{
      	// User canceled their share! 
      
      }
    }, 
    function error(errorCode, errorMessage) {      
  	// An error occurred trying to share!
    },
    messageToShare,
    "current_thread");   
</script>

Einzelheiten dazu findest du in der Dokumentation für beginShareFlow().

Mehr dazu →

Nutzer-ID und Thread-Kontext abrufen

Rufe die getContext()-Funktion auf, um Folgendes abzurufen:

  • Die Nutzer-ID (seitenspezifische ID)
  • Die Thread-ID
  • Den Thread-Typ

Diese Funktion ist für alle Nutzer der Webansicht möglich, unabhängig davon, ob sie einen offenen Thread mit deinem Bot aufweisen.

Beachte bitte Folgendes: Nur weil du die Nutzer-ID auf diese Art erhältst, heißt das nicht, dass du auch das Profil des Nutzers abrufen kannst. Dazu benötigst du die Profilberechtigung.


Mehr dazu →

Berechtigungsverwaltung

Wenn ein Nutzer einen Thread mit deinem Bot beginnt, erhältst du automatisch die Berechtigung, Nachrichten an diesen Nutzer zu senden und sein Profil abzurufen. Diese Berechtigungen werden entzogen, wenn Nutzer den Bot blockieren oder den Thread löschen.

Bei Nutzern, die deinen Bot über die Webansicht finden und noch keinen Thread mit ihm begonnen haben, solltest du diese Berechtigungen anfragen. Dazu kannst du die Berechtigungsfunktionen im JavaScript-SDK für Messenger-Erweiterungen verwenden.

Mehr dazu →

Tipps und Best Practices

Die Messenger-Plattform empfiehlt Best Practices für die Erstellung einer hervorragenden Chat-Erweiterung, einschließlich Folgendem:

  • Allgemeine Vorgehensweise
  • Verwendung der verschiedenen Modi zum Teilen
  • Steuerung des Webansichts-Chromes für maximale Wirkung
  • Sicherstellen der Abwärtskompatibilität
Mehr dazu →

Designkit

Bist du bereit, deine Chat-Erweiterung zu entwerfen? Sieh dir unsere praktische Sketch-Datei an. Sie enthält alles, was du brauchst!

Kit erhalten →

FAQ und Problembehebung

F: Brauche ich einen Bot, um eine Chat-Erweiterung zu entwickeln?

A: Ja. Chat-Erweiterungen sind Erweiterungen von Bots.

F: Wodurch erscheint die Chat-Erweiterung im Eingabefeld?

A: Eine Chat-Erweiterung erscheint im Eingabefeld für einen Nutzer, wenn dieser mit dem jeweiligen Bot interagiert hat.

F: Brauche ich eine Chat-Erweiterung, damit Nutzer Inhalte aus meinem Bot teilen können?

A: Nein. Mit der Messenger-Plattform können Nutzer auf zahlreiche weitere Arten Inhalte aus deinem Bot teilen.

F: Brauche ich eine Chat-Erweiterung, um das Javascript-SDK für Webansicht und Messenger-Erweiterungen in meinem Bot verwenden zu können? Über welche Verbindung kommunizieren sie?

A: Nein. Wir mögen das Wort einfach. Tatsächlich kannst du Webansichten auf viele Arten aufrufen und nicht nur Chat-Erweiterungen. All diese Arten ermöglichen die Verwendung von Messenger-Erweiterungen.

F: Welche Features sind über das JavaScript-SDK für Messenger-Erweiterungen verfügbar, wenn ein Empfänger einer Chat-Erweiterung auf einen Link tippt?

A: Alle Features, die für den Absender verfügbar waren, stehen auch Nutzern zur Verfügung, die den geteilten Inhalt öffnen. Du kannst die Nutzer-ID und den Thread-Kontext abrufen, deine eigenen Teilvorgänge starten und vieles mehr. Denke daran: In diesen Situationen hast du nur dann Zugriff auf das Nutzerprofil und kannst diesen Nutzern nur dann Nachrichten senden, wenn du die jeweilige Berechtigung anfragst.

F: Funktionieren Chat-Erweiterungen auf Messenger.com und Facebook.com?

A: Dieses Feature wird nur unter iOS und Android unterstützt. Nutzer auf webbasierten Clients können eventuell auf Links klicken, die von Chat-Erweiterungsnutzern geteilt wurden. Sie können aber nicht die vom JavaScript-SDK bereitgestellten Funktionen verwenden. Mehr dazu erfahren Sie im Abschnitt „Abwärtskompatibilität“ im Best Practices-Leitfaden für Chat-Erweiterungen.

F: Wo liegt der Unterschied zwischen dem Teilen im aktuellen Thread und dem Teilen per Übertragung?

A: Chat-Erweiterungen basieren auf den Features zum Teilen per Webansicht durch Hinzufügen eines Vorgangs namens "current_thread".

Wenn ein Nutzer deinen Bot in einem Thread mit dem Eingabefeld aufgerufen hat, möchte er wahrscheinlich auch dort den Inhalt teilen und nicht in einem anderen Thread. Mit dem Vorgang „current_thread“ kann der Nutzer also das Senden eines Inhalts an den aktuellen Thread bestätigen, anstatt ihn an mehrere Threads zu übertragen.

F: Ich verwende die aktuelle Messenger-Version und das SDK funktioniert nicht in der Webansicht. Was stimmt nicht?

A: Prüfe Folgendes:

  • Unveröffentlichte Seite: Wenn die Seite, mit der dein Bot verknüpft ist, unveröffentlicht ist, wird das SDK nur für Nutzer mit einer Rolle (z. B. Entwickler, Administrator) auf deiner Seite geladen. Füge den Nutzer zur Seite hinzu oder veröffentliche die Seite.

  • messenger_extension-Eigenschaft nicht festgelegt: Achte darauf, messenger_extensions an jeder Stelle, von der die Webansicht geöffnet wird, auf true zu setzen. Dazu gehören:


  • Domain ist nicht auf der Whitelist: Füge die Domain, auf der die Seite gehostet wird, zur Domain-Whitelist deines Bots hinzu.

  • Hier findest du weitere Tipps zur Problembehebung bei Webansichten.

F: Ich habe eine Chat-Erweiterung erstellt, die aber nicht im Eingabefeld angezeigt wird. Wie korrigiere ich das?

Prüfe Folgendes:

  1. Stelle sicher, dass du die home_url für die gewünschte Seite festgelegt hast und dass diese den richtigen Seitenzugriffsschlüssel für diese Seite verwendet. Wenn du einen Bot von einer Facebook-Seite zu einer anderen überträgst, wird die Start-URL dadurch nicht übertragen.

  2. Wenn du das in_test-Attribut im Entwicklungsmodus auf „true“ gesetzt hast, musst du sicherstellen, dass die Person, die das Eingabefeld prüft, ein Entwickler oder Tester des betreffenden Bots oder ein Manager der zugehörigen Facebook-Seite ist. Wenn du den Bot veröffentlicht hast, musst du sicherstellen, dass du ihn eingereicht hast und die pages_messaging-Berechtigung genehmigt wurde.

  3. Stelle sicher, dass die Facebook-Seite, mit der der Bot verknüpft ist, veröffentlicht wurde.

  4. Stelle sicher, dass der Bot selbst im öffentlichen Modus ist.

  5. Stelle sicher, dass du bereits mit dem Bot gesprochen hast.

  6. Die im Eingabefeld angezeigten Chat-Erweiterungen werden gecacht. Möglicherweise musst du kurz warten, bis sie angezeigt werden.