Récupérer un rôle spécifique dans Zoho Desk est simple dès lors que vous connaissez le bon endpoint d'API et que vous disposez des scopes OAuth appropriés. Ce guide vous présente les deux opérations de récupération de rôle disponibles et la manière de les appeler correctement.
Pourquoi c'est important
Les données de rôle dans Zoho Desk contrôlent ce que les agents peuvent voir et faire dans votre helpdesk. Vous pouvez avoir besoin de récupérer un rôle spécifique pour auditer les permissions, synchroniser les attributions de rôles avec un système externe, ou simplement vérifier quel rôle est associé à l'agent actuellement authentifié. Connaître le bon endpoint vous évite de tâtonner dans la structure de l'API et vous épargne des essais-erreurs inutiles.
> Beam Help est un service d'assistance expert indépendant pour Zoho — nous ne sommes pas le support officiel de Zoho.
---
Étape par étape
Étape 1. Vérifiez que vos scopes OAuth incluent Desk.basic.READ avant d'effectuer tout appel lié aux rôles. La liste des scopes OAuth de Zoho Desk requiert au minimum Desk.basic.READ (et optionnellement Desk.basic.CREATE) pour accéder aux données organisationnelles telles que les agents, les départements et les rôles. [2]
Étape 2. Déterminez le rôle dont vous avez besoin. Il existe deux opérations distinctes selon votre objectif :
- Votre propre rôle (personnel) — utilisez l'endpoint
/api/v1/roles/mine. - Un rôle spécifique par son identifiant — la méthode diffère selon que vous travaillez dans le contexte Desk ou CRM (voir l'étape 4 ci-dessous).
Étape 3. Pour récupérer le rôle attribué à l'agent actuellement authentifié, envoyez une requête GET à /api/v1/roles/mine. Dans le code, cela correspond à l'opération getpersonalrole, qui accepte un dictionnaire de paramètres optionnel p et retourne les détails du rôle de l'utilisateur connecté. [4]
GET /api/v1/roles/mine
Passez les éventuels paramètres de requête sous forme de paires clé-valeur dans l'argument p. Si vous n'avez aucun filtre, un dictionnaire vide {} est suffisant. [4]
Étape 4. Si vous devez rechercher un rôle par un identifiant de rôle connu dans Zoho CRM (par exemple, pour faire le lien entre les rôles d'agents CRM et Desk), utilisez l'opération get_role, qui cible :
GET /settings/roles/{rid}
Remplacez {rid} par l'identifiant alphanumérique du rôle. Cet appel ne nécessite que l'identifiant du rôle en tant que paramètre de chemin — aucun corps de requête n'est nécessaire. [5]
Étape 5. De même, si vous devez récupérer un rôle au niveau contact associé à une affaire dans Zoho CRM, un endpoint distinct existe :
GET /Contacts/roles/{role_id}
Cette opération getcontactrole accepte le role_id en tant que paramètre de chemin et retourne l'enregistrement du rôle de contact d'affaire. [7]
Étape 6. Assurez-vous que votre client Zoho Desk est initialisé avec un orgid valide avant d'appeler tout endpoint Desk. Le client requiert le domaine API, un jeton d'accès valide et l'identifiant de l'organisation. Si le orgid est manquant, le système peut le découvrir automatiquement en appelant d'abord l'endpoint de liste des organisations, en lisant le champ id du premier résultat, puis en le conservant pour les requêtes suivantes. [1]
Étape 7. Gérez l'expiration des jetons avec soin. Les jetons d'accès peuvent expirer entre les appels. Mettez en place une routine de renouvellement de jeton qui lit le refreshtoken stocké, appelle l'endpoint de renouvellement OAuth, et réécrit les valeurs accesstoken et tokenexpiresat dans votre stockage de données avant de relancer la requête de rôle. [1]
---
Erreurs courantes
- Scope
Desk.basic.READmanquant. Les endpoints de rôle appartiennent au groupe de scopes « basic ». Si ce scope n'a pas été inclus lors de l'autorisation de la connexion OAuth, tous les appels liés aux rôles retourneront une erreur de permissions. Réautorisez la connexion avec la liste complète des scopes pour résoudre ce problème. [2] - Mauvais endpoint selon le contexte.
/api/v1/roles/mineretourne *votre* rôle ;/settings/roles/{rid}récupère *n'importe quel* rôle par son identifiant, mais appartient à la couche API CRM. Les confondre produira des erreurs 404 ou des résultats inattendus. [^4,5] orgidmanquant ou vide. Les appels à l'API Zoho Desk nécessitent que l'identifiant de l'organisation soit transmis dans les en-têtes de la requête. Siorgidest une chaîne vide, le client échouera silencieusement ou retournera une erreur d'organisation introuvable. Vérifiez toujours que la valeur est renseignée avant d'effectuer l'appel. [1]- Jeton d'accès périmé. Les appels à l'API Desk effectués avec un jeton expiré retourneront une erreur d'authentification. Assurez-vous que votre logique de renouvellement de jeton s'exécute avant l'appel, et pas seulement après un échec, afin d'éviter des tentatives inutiles. [1]
---
Points à vérifier
- Couverture des scopes : Vérifiez que
Desk.basic.READapparaît dans votre chaîne de scopes OAuth active et que la connexion a été autorisée avec ce scope inclus. [2] - Sélection du bon endpoint : Confirmez que vous appelez
/api/v1/roles/minepour le rôle personnel, ou/settings/roles/{rid}avec un identifiant de rôle valide pour la recherche d'un rôle spécifique. [^4,5] orgidest renseigné : Après l'initialisation du client Desk, journalisez ou inspectez la valeur deorgidpour vous assurer qu'il s'agit d'une chaîne non vide avant tout appel API. [1]