Diese Integration ermöglicht Ihrem Team, über eine benutzerdefinierte Implementierung über jeden beliebigen Messaging-Kanal mit Ihren Kunden zu chatten.
Schritt 1: Gehe zu Einstellungen > Kanäle
Schritt 2: Klicken Sie auf Kanal hinzufügen > Benutzerdefinierter Kanal > Verbinden
Schritt 3: Geben Sie die Ziel-Webhook-URL ein, an die ausgehende Nachrichten gesendet werden.
Schritt 4: Wählen Sie den ID-Typ für den Kanal > klicken Sie auf Weiter
ID-Typen werden zur Benutzeridentifizierung und zur Kommunikation mit Ihrem benutzerdefinierten Integrationsserver verwendet.
Es stehen zwei Arten von IDs zur Verfügung:
Telefonnummer: Verwenden Sie dies, wenn der Nachrichtendienstanbieter Kontakte anhand ihrer Telefonnummer erkennt.
Beispielformat: +60177872890
Benutzerdefinierte ID: Verwenden Sie dies, wenn der Messaging-Dienstanbieter Kontakte anhand einer benutzerdefinierten ID erkennt.
Die maximale Zeichenlänge beträgt 50.
AZ
,az
,0-9
,_
,=
,+
,/
und@
sind erlaubt.
Schritt 5: Der folgende Dialog liefert dieKanal-ID,API-TokenundWebhook-URLzB
Kanal-ID:gfd8g7fd89dgfd
API-Token:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
Webhook-URL:https://app.respond.io/custom/channel/webhook/
Mithilfe des ID-Typs „Telefonnummer“ können Sie eine Konversation beginnen und die erste Nachricht an einen Kontakt senden.
Die Webhook-URLwird verwendet, um dieNachrichten,NachrichtenechosundNachrichtenbelegeauf der respond.io-Plattform zu posten.
Der bereitgestellte Code löst den Webhook auf respond.io aus, erstellt bei Bedarf einen Kontakt und speichert die Nachricht unter diesem Kontakt.
Beispiel für Nachrichten
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'Autorisierung: Träger aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Steuerung: kein Cache' \\
-H 'Inhaltstyp: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"Typ": "Nachricht",
"mId": "xcvzzxcxczxczxc",
"Zeitstempel": 2132131321000,
"Nachricht": {
"Typ": "Text",
"Text": "Hallo Welt"
}
}
\],
"Kontakt": {
"Vorname": "John",
"Nachname": "Doe",
"Profilbild": "",
"Ländercode": "MY",
"E-Mail": "[email protected]",
"Telefon": "+60177872890",
"Sprache": "en"
}
}'
Beispiel für Messaging Echoes
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'Autorisierung: Träger aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Steuerung: kein Cache' \\
-H 'Inhaltstyp: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"Typ": "Nachricht\_Echo",
"mId": "xcvzzxcxczxczxc",
"Zeitstempel": 2132131321000,
"Nachricht": {
"Typ": "Text",
"Text": "Hallo Welt"
}
}
\],
"Kontakt": {
"Vorname": "John",
"Nachname": "Doe",
"Profilbild": "",
"Ländercode": "MY",
"E-Mail": "[email protected]",
"Telefon": "+60177872890",
"Sprache": "en"
}
}'
Beispiel für Messaging-Belege
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'Autorisierung: Träger aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Steuerung: kein Cache' \\
-H 'Inhaltstyp: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"Typ": "Nachricht\_Status",
"mId": "xcvzzxcxczxczxc",
"Zeitstempel": 2132131321000,
"Status": {
"Wert": "gesendet|zugestellt|gelesen|fehlgeschlagen",
"Nachricht": "Fehler: Senden aufgrund eines ungültigen Tokens fehlgeschlagen"
}
\]
}'
Feld | Beschreibung | Validierung |
---|---|---|
Kanal-ID | Eindeutige Kanal-ID | Erforderlich. Eindeutiges Feld. Wird von respond.io generiert. |
Kontakt-ID | Eindeutige Kontakt-ID | Erforderlich. Eindeutige respond.io-Kontakt-ID. Maximal 50 Zeichen. |
Ereignisse.Typ | Ereignistyp | Erforderlich. Verfügbarer Typ: Nachricht, Nachrichtenecho und Nachrichtenstatus. |
events.mld | Nachrichten-ID | Erforderlich. Eindeutige Nachrichten-ID. Maximal 50 Zeichen. |
Ereignisse.Zeitstempel | UNIX-Epochenzeit (Millisekunden) | Erforderlich. Zeitpunkt des Ereignisses, das den Rückruf ausgelöst hat. |
Ereignisse.Nachrichtentyp | Nachrichtenart | Erforderlich. Verfügbare Nachrichtentypen: Text, Anhang, Standort und Quick_Reply. Weitere Beispiele für Nachrichtentypen finden Sie im Abschnitt „Nachrichtentyp“. |
Ereignisse.Nachrichtentext | Nachrichtentext | Erforderlich. Maximale Länge 7.000 Zeichen. |
Ereignisse.Status.Wert | Text | Erforderlich, wenn event.type message_status ist. Verfügbare Statuswerte: Gesendet, Zugestellt, Gelesen und Fehlgeschlagen. |
Ereignisse.Status.Nachricht | Text | Erforderlich, wenn events.status.value fehlgeschlagen ist. |
Kontakt.Vorname | Vorname | Optional. Maximal 50 Zeichen. |
kontakt.nachname | Nachname | Optional. Maximal 50 Zeichen. |
Kontakt.Profilbild | Profilbild-URL | Optional. Die Avatargröße sollte nicht mehr als 100 KB betragen. Empfohlen werden 720 x 720. |
contact.locale | Gebietsschemacode | Optional. Die Werteliste finden Sie hier. |
Kontakt.Ländercode | Landesvorwahl | Optional. 2-stelliger Ländercode – ISO ALPHA-2-Code. |
Kontakt.Zeitzone | Zeitzone | Optional. (min: -24) (max: 24). |
kontakt.email | E-Mail-Adresse | Optional. Maximal 50 Zeichen. |
Kontakttelefon | Telefonnummer. | Optional. Maximal 18 Zeichen. |
Kontakt.Sprache | Sprache | Optional. ISO 639-1. |
Antwort – Erfolg (HTTP-Status → 200)
"OK"
respond.io ruft den Endpunkt<API Base URL>/message
auf
Stellen Sie sicher, dass Sie den CodeOutgoing Messageauf der Route
/message
Ihres Webservers anwenden.
Hier ist das cURL-Beispiel von respond.io, das den Endpunkt aufruft:
curl -X POST \\
/message \\
-H 'Autorisierung: Träger aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Steuerung: kein Cache' \\
-H 'Inhaltstyp: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
"Text": "Hallo Welt"
}
}'
Antwort – Erfolg (HTTP-Status → 200)
{
"mId": "1640141607842"
}
Die Authentifizierung muss am Endpunkt erfolgen, bevor die Nachricht an den Messaging-Dienstanbieter gesendet wird.
Hier'ist ein Beispiel für die Verwendung einer Express-Middleware für diesen Zweck:
const {validationResult} = require('express-validator');
const validateToken = (req, res, next) => {
const apiToken = <>
const bearerToken = req.headers.authorization;
if (!bearerToken)
return res.send(401)
const token = bearerToken.substring(7, bearerToken.length);
wenn (apiToken !== token) {
return res.send(401)
}
weiter();
};
module.exports = {
validateToken
};
Wir'haben ein Beispiel für einen benutzerdefinierten Kanal beigefügt, den Sie auf Ihrem Server testen können. Schauen Sie sich hier unser GitHub-Projekt an.
Beispiel für Text
{
"Typ": "Text",
"Text": "Willkommen bei respond.io",
}
Feld | Beschreibung | Validierung |
---|---|---|
Typ | Nachrichtenart | Erforderlich. Text |
Text | Nachrichtentext | Erforderlich. Maximale Länge 7.000 Zeichen. |
Beispiel für Mediendatei
{
"Typ": "Anhang",
"Anhang": {
"Typ": "Bild|Video|Audio|Datei",
"URL": "https://abc/japan.png",
"MIME-Typ": "Bild/png",
"Dateiname":"Firmenlogo.png",
"Beschreibung": "neuestes Firmenlogo"
}
}
Feld | Beschreibung | Validierung |
---|---|---|
Typ | Nachrichtenart | Erforderlich. Anhang. |
Anhangstyp | Anhangstyp | Erforderlich. Verfügbare Anhangstypen: Bild, Video, Audio und Datei. |
Anhang.URL | URL | Erforderlich. Maximal 2.000 Zeichen. Stellen Sie sicher, dass es sich um einen öffentlichen Link handelt, damit Benutzer oder Kontakte den Inhalt sehen können. |
Anhang.MIME-Typ | MIME-Typ des Anhangs | Optional |
Anhang.Dateiname | Dateiname | Optional. Der Dateiname sollte eine Erweiterung enthalten. Maximal 256 Zeichen (einschließlich Dateierweiterung). Das Senden einer Datei ohne Erweiterung oder mit der falschen Erweiterung kann dazu führen, dass der Kontakt oder Benutzer die Datei nicht öffnen kann. |
Anhang.Beschreibung | Dateibeschreibung | Optional. Maximal 256 Zeichen. Gilt nur für Anhangstyp = Bild. |
Stelle sicher, dass die URL des Anhangs nicht zwangsweise vom Browser heruntergeladen wird. Der Content-Disposition
-Header der HTTP-Antwort sollte den Standardwert inline
haben.
Beispiel für Standort
{
„Typ“: „Standort“,
„Breitengrad“: 0,123456,
„Längengrad“: -0,1234,
„Adresse“: „Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur“
}
Feld | Beschreibung | Validierung |
---|---|---|
Typ | Nachrichtenart | Erforderlich. Standort. |
Breite | Koordinaten | Erforderlich. Breitengrad (±90°) innerhalb gültiger Bereiche. |
Längengrad | Koordinaten | Erforderlich. Längengrad (±180°) innerhalb gültiger Bereiche. |
Adresse | Standortadresse | Optional. Maximal 256 Zeichen. |
Beispiel für eine Schnellantwort
{
"Typ": "Schnellantwort",
"Titel": "Wählen Sie Ihre bevorzugte Sprache",
"Antworten": \[
"Malaiisch",
"Englisch"
\]
}
Feld | Beschreibung | Validierung |
---|---|---|
Typ | Nachrichtenart | Erforderlich. schnelle Antwort. |
titel | Titel der Schnellantwort | Erforderlich. Maximal 256 Zeichen. |
Antworten | Antworttext | Erforderlich. Maximal 10 Antworten mit maximal 256 Zeichen pro Antwort. |
Fehler (HTTP-Status → 4xx)
Schritt 1: Klicken Sie auf Einstellungen > Kanäle
Schritt 2: Suchen Sie den benutzerdefinierten Kanal > Klicken Sie auf Verwalten
Schritt 3: Auf der Seite „Benutzerdefinierte Kanalkonfiguration“ sehen Sie die folgenden Konfigurationen:
Kanalsymbol – Laden Sie ein Bild hoch, das als Symbol für Ihren benutzerdefinierten Kanal dient.
Kanalname – Der Kanalname kann geändert werden und wird intern zur Identifizierung des Kanals verwendet.
Webhook-URL für ausgehende Nachrichten — Die Webhook-URL für ausgehende Nachrichten an diesen Kanal.
Webhook-URL für eingehende Nachrichten — Die Webhook-URL für eingehende Nachrichten an diesen Kanal.
ID-Typ — Diese werden zur Benutzeridentifizierung und zur Kommunikation mit Ihrem benutzerdefinierten Integrationsserver verwendet.
Kanal-ID — Eindeutige Kanal-ID zur Identifizierung Ihres benutzerdefinierten Kanals.
API-Token — Eine eindeutige Kennung, die zur Authentifizierung eines Benutzers für den Zugriff auf eine API verwendet wird.
Schritt 4: Klicken Sie auf Änderungen speichern , um die benutzerdefinierte Kanalkonfiguration zu aktualisieren.
Ja, das ist möglich. Hier sind drei Schritte, die Sie befolgen müssen:
Gib in respond.io die Ziel-Webhook-URL von der anderen Plattform in das Feld Webhook-URL für eingehende Nachrichten ein.
Richten Sie auf der anderen Plattform eine -Webhook-URL ein, die auf respond.io verweist und es Kontakten ermöglicht, Ihnen Nachrichten zurückzusenden.
Sie'benötigen einen benutzerdefinierten Integrationsserver , um APIs sowohl von respond.io als auch von der anderen Plattform zu interpretieren und so den Nachrichtenaustausch zwischen ihnen zu ermöglichen.
Stellen Sie sicher, dass Sie mit der anderen Plattform bestätigen, dass die ersten beiden Schritte durchführbar sind.
Beim Verbinden eines benutzerdefinierten Kanals geben Nachrichten, die über Webhooks an respond.io gesendet werden, immer sofort einen Statuscode 200 zurück, unabhängig davon, ob die Nachricht erfolgreich an respond.io weitergeleitet wurde. Dies liegt an der Natur von Webhooks, die darauf ausgelegt sind, eine sofortige Antwort zurückzugeben, ohne den Erfolg der Nachrichtenübermittlung zu überprüfen.