Elencare tutte le approvazioni collegate a un ticket di Zoho Desk è una singola chiamata API che restituisce ogni record di approvazione associato a un determinato ID ticket — ecco esattamente come farlo.
Perché è importante
Le approvazioni dei ticket in Zoho Desk rappresentano passaggi formali di autorizzazione che possono essere richiesti prima che un ticket possa avanzare o essere risolto. Se stai costruendo un'integrazione, automatizzando un flusso di lavoro o verificando lo stato delle approvazioni su più ticket, hai bisogno di un modo affidabile per recuperare l'elenco completo delle approvazioni per qualsiasi ticket. Conoscere l'endpoint corretto e gli scope OAuth necessari garantisce che le tue richieste abbiano successo senza errori di autorizzazione.
> Beam Help è una risorsa di supporto esperto indipendente per Zoho — non è il supporto ufficiale Zoho.
---
Procedura passo dopo passo
Passaggio 1. Verifica che il tuo token OAuth includa gli scope corretti di Zoho Desk prima di effettuare qualsiasi richiesta. Come minimo avrai bisogno di Desk.tickets.READ nel tuo set di scope autorizzati, che copre l'accesso in lettura alle risorse correlate ai ticket, incluse le approvazioni. [2]
Passaggio 2. Identifica il ticketId del ticket di cui vuoi recuperare le approvazioni. Si tratta dell'identificatore numerico univoco che Zoho Desk assegna a ogni ticket — puoi trovarlo nell'URL del ticket all'interno del portale agente di Desk, che segue il pattern https://desk.zoho.com/agent/{portal}/tickets/details/{ticketId}. [7]
Passaggio 3. Invia una richiesta GET all'endpoint delle approvazioni, sostituendo il tuo ID ticket effettivo nel percorso:
GET /api/v1/tickets/{ticketId}/approvals
Questa operazione è identificata internamente come list_approvals. L'endpoint accetta ticketId come parametro di percorso obbligatorio e un parametro opzionale p per eventuali opzioni di query aggiuntive che desideri passare. [3]
Passaggio 4. Nel codice, la chiamata si presenta così (mostrata in Python per chiarezza):
def list_approvals(self, ticketId: str, p: dict = None):
return self.c.request("GET", f"/api/v1/tickets/{ticketId}/approvals", p, None)
Passa l'ID del ticket come stringa e, facoltativamente, fornisci un dizionario di parametri di query come p se hai bisogno di filtrare o paginare i risultati. [3]
Passaggio 5. Analizza la risposta. L'API restituirà la raccolta dei record di approvazione collegati a quel ticket. Se hai bisogno dei dettagli completi di una specifica approvazione dall'elenco, prendi il suo approvalId e procedi con una richiesta GET separata a:
GET /api/v1/tickets/{ticketId}/approvals/{approvalId}
Questa è l'operazione get_approval e accetta sia ticketId che approvalId come parametri di percorso. [5]
Passaggio 6. Se il tuo flusso di lavoro richiede di agire su un'approvazione — ad esempio, approvare un ticket in modo programmatico — puoi farlo tramite una richiesta POST a:
POST /api/v1/tickets/{ticketId}/approvals/{approvalId}/approve
Questa operazione createapproveticket richiede sia l'ID del ticket che quello dell'approvazione, oltre a qualsiasi payload data pertinente. [4]
---
Errori comuni
- Scope mancanti: Se il tuo token OAuth è stato generato senza
Desk.tickets.READ(o il più ampioDesk.tickets.ALL), l'API restituirà un errore di autorizzazione. Verifica sempre l'elenco degli scope prima di eseguire il debug della richiesta stessa. [2] - Formato ID ticket errato: Il
ticketIddeve essere passato come stringa nel percorso. Passare direttamente un tipo intero senza convertirlo può causare errori di costruzione della richiesta a seconda del tuo client HTTP. [3] - Confusione tra endpoint di elenco e di dettaglio: L'endpoint
listapprovals(GET /api/v1/tickets/{ticketId}/approvals) restituisce una raccolta, mentregetapproval(GET /api/v1/tickets/{ticketId}/approvals/{approvalId}) restituisce un singolo record. Usa prima l'endpoint di elenco per scoprire i valoriapprovalIddisponibili, poi approfondisci i singoli record secondo necessità. [3][5] - Creazione vs. elenco: L'endpoint
POST /api/v1/tickets/{ticketId}/approvalsserve per *creare* una nuova approvazione, non per recuperare quelle esistenti. Inviare una richiestaPOSTquando si intendeva unaGETcreerà un record di approvazione non desiderato. [6]
---
Cosa verificare
- Verifica degli scope: Conferma che
Desk.tickets.READoDesk.tickets.ALLcompaia nell'elenco degli scope del token OAuth attivo prima di effettuare la chiamata. [2] - ID ticket corretto: Apri il ticket nel portale agente di Zoho Desk e verifica che l'ID nell'URL corrisponda al
ticketIdche stai passando all'endpoint. [7] - Struttura della risposta: Assicurati che il corpo della risposta contenga un array/elenco di oggetti di approvazione; un array vuoto è valido e significa semplicemente che non sono ancora state create approvazioni per quel ticket, mentre un oggetto di errore indica un problema di scope o di percorso. [3]