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:
- Authentifizieren Sie einen Benutzer in Ihrem Login-Projekt durch eine der folgenden Anfragen:
- Generieren Sie einen Zendesk-JWT.
- 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:
- curl
go get github.com/dgrijalva/jwt-go
go get github.com/rs/cors
So rufen Sie ein Zendesk-JWT ab:
- Validieren Sie einen JWT.
- Dekodieren Sie einen JWT.
- Erstellen Sie eine Liste der JWT-Ansprüche.
- 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.- go
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-Adressesub
: Benutzer-ID
- go
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- go
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- go
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
Nutzen Sie den empfangenen Zendesk-JWT, um einen Besucher in Zendesk Chat zu authentifizieren. Initialisieren Sie das Web SDK mit der
- javascript
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.
Arbeiten mit Besuchern
Nach erfolgreicher Authentifizierung wird ein Besucher in Ihrem Zendesk Chat-Konto im ModulSie müssen eine Token abrufen, um den Endpunkt
Besucherdaten abrufen
Sie sollten dieBeispiel der Anfrage
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:
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"
}
Verknüpfung von Besuchern mit Ihrem Login-Projekt prüfen
Wenn ein Besucher mit Ihrem Login-Projekt verknüpft ist, entspricht der mit den Daten empfangene Parameterexternal_id
der Benutzer-ID. Die Benutzer-ID befindet sich im Kundenportal unter Ihrem Login-Projekt > Nutzer > Nutzername/ID.Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.