Integration in Zendesk Chat

So funktioniert's

Durch die Integration in Zendesk Chat können Sie Benutzer von Xsolla-Login mit Ihrem Projekt verknüpfen, das Zendesk Chat-Besucher enthält, die Fragen an Ihr Support-Team stellen. Der aufseiten von Zendesk verwendete Parameter external_id entspricht der Benutzer-ID in Ihrem Login-Projekt. Wenn Sie einen Besucher als Xsolla-Login-Benutzer identifiziert haben, besteht die Möglichkeit, deren Konto über das Kundenportal zu verwalten.

Für wen ist es

Partner, die bereits Login integriert haben und ein Zendesk Chat-Konto besitzen.

Wie komme ich dazu

So verknüpfen Sie einen Besucher:

  1. Authentifizieren Sie einen Benutzer in Ihrem Login-Projekt durch eine der folgenden Anfragen:
    • Authentifizierung über Benutzername und Passwort (JWT und OAuth 2.0).
    • Authentifizierung über soziale Netzwerke (JWT und OAuth 2.0).
  2. Generieren Sie einen Zendesk-JWT.
  3. Authentifizieren Sie einen Besucher in Zendesk Chat.

Zendesk-JWT generieren

Der Zendesk-JWT basiert auf einem Token, den Sie vom Xsolla-Login-Server erhalten, wenn Sie einen Benutzer in Ihrem Login-Projekt authentifizieren. Sie können einen Token in Cookie-Dateien auf einer erforderlichen Domäne speichern und ihn beim Generieren eines Zendesk-JWT zu einer HTTP-Anfrage hinzufügen.

Sie können bei der Implementierung des Aufrufs auch Ihr eigenes Antwortformat festlegen.

Im Folgenden ist ein vereinfachter Ablauf für das Abrufen eines Zendesk-JWT basierend auf Go dargestellt. Der vollständige Code für das Generieren eines Zendesk-JWT finden Sie auf GitHub.

Installieren Sie die folgenden Pakete, bevor Sie ein JWT generieren:

Copy
Full screen
Small screen
go get github.com/dgrijalva/jwt-go
go get github.com/rs/cors

So rufen Sie ein Zendesk-JWT ab:

  1. Validieren Sie einen JWT.
  2. Dekodieren Sie einen JWT.
  3. Erstellen Sie eine Liste der JWT-Ansprüche.
  4. Signieren Sie einen JWT.

JWT validieren

Extrahieren Sie einen JWT aus den Cookie-Dateien und validieren Sie ihn mithilfe des geheimen Schlüssel. Dieser befindet sich im Kundenportal unter Ihrem Login-Projekt > Allgemeine Einstellungen > Geheimer Schlüssel.

Copy
Full screen
Small screen
cookie, err := r.Cookie("token")

token, err := jwt.Parse(cookie.Value, func(token *jwt.Token) (interface{}, error) {
  if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
    return nil, errors.New("unexpected signing method")
  }
  return []byte(loginSecret), nil
})

var loginClaims jwt.MapClaims
var ok bool
if loginClaims, ok = token.Claims.(jwt.MapClaims); !ok || !token.Valid {
  writeErrorResponse(w, "00-01", "Token is invalid", http.StatusUnauthorized)
  return
}

JWT dekodieren

Dekodieren Sie einen JWT und extrahieren Sie daraus die Werte der folgenden Ansprüche:

  • email: E-Mail-Adresse
  • sub: Benutzer-ID

Copy
Full screen
Small screen
var sub, email string
sub, _ = loginClaims["sub"].(string)
email, _ = loginClaims["email"].(string)

Liste der JWT-Ansprüche erstellen

Erstellen Sie eine Liste der JWT-Ansprüche. Eine Beschreibung zu jedem Anspruch befindet sich im Abschnitt Creating a JWT token.

Copy
Full screen
Small screen
zendeskClaims := jwt.MapClaims{}
zendeskClaims["name"] = email
zendeskClaims["email"] = email
zendeskClaims["external_id"] = sub
zendeskClaims["iat"] = time.Now().UTC().Unix()

JWT signieren

Signieren Sie eine Token mit dem geheimen Schlüssel Ihres Zendesk Chat-Kontos. Sie finden ihn im Chat dashboard unter Settings > Widget > Registerkarte Widget security > Visitor Authentication.

Copy
Full screen
Small screen
zendeskToken := jwt.NewWithClaims(jwt.SigningMethodHS256, zendeskClaims)
zendeskTokenString, _ := zendeskToken.SignedString([]byte(zendeskSecret))

Besucher in Zendesk Chat authentifizieren

Ermöglicht das Hinzufügen folgender Besucherdaten zu Zendesk Chat:

  • Name
  • E-Mail-Adresse
  • Kennung
Besucherdaten werden beim Generieren eines Zendesk-JWT hinzugefügt.

Nutzen Sie den empfangenen Zendesk-JWT, um einen Besucher in Zendesk Chat zu authentifizieren. Initialisieren Sie das Web SDK mit der authentication wie folgt:

Copy
Full screen
Small screen
zChat.init({
  account_key: ACCOUNT_KEY,
  authentication: {
    jwt_fn: function(callback) {
      fetch('https://example.com:8001/generate/token', {
        credentials: "include"
      }).then(function(res) {
        res.text().then(function(body) {
          const jwt = JSON.parse(body).token;
          callback(jwt)
        });
      });
    }
  }
});

Der Ablauf der Besucherauthentifizierung ist in der Anleitung und im Web SDK erläutert.

Note
Soziale Netzwerke geben eventuell keine E-Mail-Adressen von Benutzern weiter. Folgen Sie daher der Anleitung, um eine E-Mail-Adresse anzufragen.

Arbeiten mit Besuchern

Nach erfolgreicher Authentifizierung wird ein Besucher in Ihrem Zendesk Chat-Konto im Modul Visitors angezeigt.

Sie müssen eine Token abrufen, um den Endpunkt Visitors nutzen zu können (Anleitung). Bei Nutzung der Daten eines Besuchers, welcher mit Ihrem Login-Projekt verknüpft ist, müssen Sie:

  1. Besucherdaten abrufen.
  2. Besucher mit Ihrem Login-Projekt verknüpfen.

Besucherdaten abrufen

Sie sollten die Visitor ID abrufen, um die Anfrage Show Visitor auszuführen. Sie finden diese in Ihrem Zendesk Chat-Konto durch Auswahl des gewünschten Besuchers.

Beispiel der Anfrage Show Visitor:

Copy
Full screen
Small screen
http
  • http
  • curl
GET https://www.zopim.com/api/v2/visitors/9855790-xjj3u5xPWhW1Fv HTTP/1.1
Authorization: Bearer <token>
curl --request GET \
  --url https://www.zopim.com/api/v2/visitors/9855790-xjj3u5xPWhW1Fv \
  --header 'authorization: bearer_token'

Antwortbeispiel:

Copy
Full screen
Small screen
http
  • http
  • curl
HTTP/1.1 200 OK
Content-Type: application/json

{
  "banned": false,
  "notes": "",
  "id": "9855790.xjj3ukxyIhn6j3",
  "email": "email@email.com",
  "phone": "",
  "created": 1586950554,
  "name": "email@email.com",
  "external_id": "82cd5e0c-c3ff-11e9-b199-c1e5fc81c37f"
}
{
  "banned": false,
  "notes": "",
  "id": "9855790.xjj3ukxyIhn6j3",
  "email": "email@email.com",
  "phone": "",
  "created": 1586950554,
  "name": "email@email.com",
  "external_id": "82cd5e0c-c3ff-11e9-b199-c1e5fc81c37f"
}

Wenn ein Besucher mit Ihrem Login-Projekt verknüpft ist, entspricht der mit den Daten empfangene Parameter external_id der Benutzer-ID. Die Benutzer-ID befindet sich im Kundenportal unter Ihrem Login-Projekt > Nutzer > Nutzername/ID.

War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Diese Seite bewerten
Diese Seite bewerten
Gibt es etwas, das wir verbessern können?

Jetzt nicht

Vielen Dank für Ihr Feedback!
Letztmalig aktualisiert: 24. Dezember 2020

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!