Login / Intégration à Zendesk Chat
  Retour à la documentation

Login

Intégration à Zendesk Chat

Comment ça marche

L’intégration à Zendesk Chat vous permet d’associer les utilisateurs du produit Xsolla Login dans votre projet aux visiteurs de Zendesk Chat qui posent des questions à votre support technique. Le paramètre external_id côté Zendesk correspond à l’ID utilisateur dans votre projet de connexion. Lorsqu’un visiteur est identifié comme utilisateur du produit Login, vous pouvez gérer son compte dans le Compte éditeur.

Qui peut l'utiliser

Les partenaires qui ont déjà intégré Login et qui possèdent un compte Zendesk Chat.

Comment configurer

Pour associer un visiteur :

  1. Authentifiez un utilisateur dans votre projet de connexion au moyen de l’une des requêtes suivantes :
    • Authentification par nom d’utilisateur et mot de passe (JWT et OAuth 2.0) ;
    • Authentification via les réseaux sociaux (JWT et OAuth 2.0).
  2. Générez un Zendesk JWT.
  3. Authentifiez un visiteur dans Zendesk Chat.

Génération de Zendesk JWT

Le Zendesk JWT repose sur le jeton obtenu du serveur Xsolla Login lors de l’authentification de l’utilisateur dans votre projet de connexion. Ce jeton peut être stocké dans des fichiers de cookies sur un domaine spécifique et ajouté à la requête HTTP lors de la création du Zendesk JWT.

Vous pouvez également définir votre propre format de réponse lors de l’implémentation de l’appel.

Vous trouverez ci-dessous une version simplifiée d’un flux d’obtention du Zendesk JWT basé sur Go. Le code de génération complet du Zendesk JWT est disponible sur GitHub.

Avant de générer un JWT, installer les packages suivants :

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

Pour obtenir un Zendesk JWT :

  1. validez le JWT.
  2. Décodez le JWT.
  3. Formez une liste de revendications JWT.
  4. Signez le JWT.

Validation du JWT

Extrayez le JWT des fichiers cookies et validez-le à l’aide de la clé secrète qui se trouve dans le Compte éditeur sous votre projet de connexion > General settings > Secret key.
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
}

Décodage de JWT

Décodez le JWT et extrayez-en les valeurs des revendications suivantes :
  • email — adresse e-mail ;
  • sub — ID utilisateur.
Copy
Full screen
Small screen
var sub, email string
sub, _ = loginClaims["sub"].(string)
email, _ = loginClaims["email"].(string)

Formation de la liste des revendications JWT

Formez une liste de revendications pour un JWT. Vous trouverez la description de chaque revendication dans le module 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()

Signature du JWT

Signez un jeton avec la clé secrète de votre compte Zendesk Chat. Elle se trouve dans Chat dashboard > Settings > Widget > Widget security > onglet Visitor Authentication.
Copy
Full screen
Small screen
zendeskToken := jwt.NewWithClaims(jwt.SigningMethodHS256, zendeskClaims)
zendeskTokenString, _ := zendeskToken.SignedString([]byte(zendeskSecret))

Authentification du visiteur dans Zendesk Chat

Cette action permet d’ajouter les données de visiteur suivantes à Zendesk Chat :

  • nom ;
  • adresse e-mail ;
  • identifiant.
Les données des visiteurs sont ajoutées lors de la génération d’un Zendesk JWT.

Utilisez le Zendesk JWT reçu pour authentifier un visiteur dans Zendesk Chat. Pour ce faire, initialisez le SDK Web avec l’option authentication de la manière suivante :

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)
        });
      });
    }
  }
});

Le flux d’authentification des visiteurs est décrit dans les instructions et dans le SDK Web.

Note
Les réseaux sociaux peuvent ne pas passer de données d’adresses e-mail des utilisateurs. Suivez ces instructions pour demander une adresse e-mail.

Travailler avec un visiteur

Une fois l’authentification réussie, le visiteur sera affiché dans le module Visitors de votre compte Zendesk Chat.

Pour utiliser l’endpoint Visitors, vous devez obtenir un jeton (instruction). Lorsque vous travaillez avec les données d’un visiteur lié à votre projet de connexion :

  1. Obtenez des données sur le visiteur.
  2. Vérifiez la liaison du visiteur à votre projet de connexion.

Obtention des données sur le visiteur

Pour exécuter la requête Show Visitor, vous devez obtenir le Visitor ID. Pour le trouver, accédez à votre compte Zendesk Chat et sélectionnez le visiteur requis.

Exemple de requête 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'

Exemple de réponse :

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"
}
Si un visiteur est lié à votre projet de connexion, le paramètre external_id figurant dans les données reçues correspondra à l’ID utilisateur. L’ID utilisateur se trouve dans le Compte éditeur sous votre projet de connexion > Users> Username/ID.
Cet article vous a été utile ?
Merci !
Que pouvons-nous améliorer ? Message
Nous sommes désolés de l'apprendre
Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
Merci pour votre commentaire !
Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
Dernière mise à jour: 18 Septembre 2024

Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.

Signaler un problème
Nous améliorons continuellement notre contenu grâce à vos commentaires.
Indiquez votre adresse e-mail pour un suivi
Merci pour votre commentaire !