Questo documento spiega come gestire le approvazioni nell'API Google Drive.
Gli utenti possono inviare documenti su Google Drive mediante un processo di approvazione formale. Puoi utilizzare questo processo per ottenere l'approvazione per la revisione di un contratto o per un documento ufficiale prima della pubblicazione. Un'approvazione tiene traccia dello stato della revisione (ad esempio In corso, Approvato o Rifiutato) e dei revisori coinvolti. Le approvazioni sono un ottimo modo per convalidare i contenuti e tenere traccia dei revisori.
Puoi creare e gestire le approvazioni dei contenuti in Drive. L'API Google Drive fornisce la risorsa approvals per lavorare con le approvazioni dei file. I metodi della risorsa approvals funzionano su
elementi all'interno di Drive, Google Docs e altri editor di Google Workspace. I revisori possono approvare o rifiutare i documenti oppure lasciare un feedback
direttamente.
Prima di iniziare
Il file deve contenere la funzionalità
canStartApproval. Per controllare le funzionalità del file, chiama il metodogetsulla risorsafilescon il parametro di percorsofileIde utilizza il campo della funzionalitàcanStartApprovalnel parametrofields. Per saperne di più, vedi Informazioni sulle funzionalità dei file.La funzionalità booleana
canStartApprovalèfalsequando:- Le impostazioni dell'amministratore limitano l'accesso alla funzionalità.
- La tua versione di Google Workspace non è idonea.
- Il file è di proprietà di un utente esterno al tuo dominio.
- L'utente non dispone dell'autorizzazione
role=writerper il file.
Assicurati di condividere manualmente il file di destinazione con i revisori. Drive non compie automaticamente questa operazione. Se un revisore non ha accesso al file, la richiesta di approvazione andrà a buon fine, ma non riceverà notifiche e non potrà visualizzare il file.
Concetti
I seguenti concetti chiave costituiscono la base delle approvazioni.
Stato di approvazione
Quando richiedi l'approvazione di un documento, la procedura di approvazione garantisce che ogni revisore approvi la stessa versione dei contenuti. Se il file viene modificato dopo che un revisore approva la richiesta e prima che la richiesta venga completata, le approvazioni del revisore vengono reimpostate e i revisori devono approvare la nuova versione. Se i contenuti vengono modificati dopo l'approvazione finale, sul documento viene visualizzato un banner che indica che la versione attuale è diversa da quella approvata.
La risorsa approvals include un oggetto
Status che descrive in dettaglio lo stato
dell'approvazione quando viene richiesta la risorsa. Include anche l'oggetto
ReviewerResponse che
descrive in dettaglio le risposte a un'approvazione effettuata da revisori specifici. La risposta di ogni revisore è rappresentata dall'oggetto Response.
Ogni azione nella procedura di approvazione genera notifiche via email che vengono inviate all'iniziatore (l'utente che richiede l'approvazione) e a tutti i revisori. Viene inoltre aggiunto al log delle attività di approvazione.
Tutti i revisori devono approvare un'approvazione. Qualsiasi revisore che rifiuta un'approvazione imposta
lo stato completato su DECLINED.
Una volta completata un'approvazione (lo stato è APPROVED, CANCELLED o
DECLINED), rimane nello stato completato e non può essere modificata
dall'iniziatore o dai revisori. Puoi aggiungere commenti a un'approvazione completata, a condizione
che non esista un'approvazione su un file con stato IN_PROGRESS.
Ciclo di vita di un'approvazione
Un'approvazione passa attraverso diversi stati durante il suo ciclo di vita. La figura 1 mostra i passaggi di alto livello di un ciclo di vita di approvazione:
Avvia l'approvazione. Chiama il numero
startper avviare la richiesta di approvazione.statusviene quindi impostato suIN_PROGRESS.L'approvazione è in attesa. Mentre l'approvazione è in attesa (
statusè impostato suIN_PROGRESS), sia l'iniziatore sia i revisori possono interagire con essa. Può aggiungere uncomment, l'iniziatore puòreassigni revisori e uno o più revisori possonoapprovela richiesta.L'approvazione è nello stato Completata. Un'approvazione entra nello stato completato (
statusè impostato suAPPROVED,CANCELLEDoDECLINED) quando tutti i revisori approvano la richiesta, il richiedente sceglie dicancella richiesta o se un revisore sceglie dideclinela richiesta.
Utilizzare il parametro fields
Se vuoi specificare i campi da restituire nella risposta, puoi impostare il
fields parametro
di sistema
con qualsiasi metodo della risorsa approvals. Se ometti il parametro fields,
il server restituisce un insieme predefinito di campi specifici per il metodo. Per restituire
campi diversi, vedi Restituire campi specifici.
Avviare e amministrare le approvazioni
La risorsa approvals può essere utilizzata per avviare
e gestire le approvazioni utilizzando l'API Drive. Questi metodi funzionano con qualsiasi ambito dell'API Drive OAuth 2.0 esistente che consente di scrivere metadati dei file. Per saperne di più, vedi Scegliere gli ambiti dell'API Google Drive.
Avvia approvazione
Per avviare una nuova approvazione di un file, utilizza il metodo start sulla risorsa approvals e includi il parametro di percorso fileId.
Il corpo della richiesta è costituito da un campo reviewerEmails obbligatorio che è un array di stringhe contenente gli indirizzi email dei revisori incaricati di esaminare il file. Ogni indirizzo email del revisore deve essere associato a un Account Google, altrimenti la richiesta non andrà a buon fine.
Inoltre, vengono offerti tre campi facoltativi:
dueTime: la scadenza per l'approvazione nel formato RFC 3339.lockFile: un valore booleano che indica se bloccare il file all'avvio dell'approvazione. In questo modo, gli utenti non possono modificare il file durante la procedura di approvazione. Qualsiasi utente con l'autorizzazionerole=writerpuò rimuovere questo blocco.message: Un messaggio personalizzato inviato ai revisori.
Il corpo della risposta contiene un'istanza della risorsa approvals e include il campo initiator, ovvero l'utente che ha richiesto l'approvazione. L'approvazione Status è impostata su IN_PROGRESS.
Se è presente un'approvazione esistente con un Status di IN_PROGRESS, il metodo start
non va a buon fine. Puoi avviare un'approvazione solo se non esiste un'approvazione esistente sul file o se l'approvazione esistente è nello stato completato (lo stato è APPROVED, CANCELLED o DECLINED).
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals:start' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"reviewerEmails": [
"reviewer1@example.com",
"reviewer2@example.com"
],
"dueTime": "2026-04-01T15:01:23Z",
"lockFile": true,
"message": "Please review this file for approval."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Commento sull'approvazione
Per commentare un'approvazione, utilizza il metodo
comment sulla risorsa approvals e includi i parametri di percorso fileId e approvalId.
Il corpo della richiesta è costituito da un campo message obbligatorio che è una stringa contenente il commento che vuoi aggiungere all'approvazione.
Il corpo della risposta contiene un'istanza della risorsa approvals. Il messaggio
viene inviato all'iniziatore dell'approvazione e ai revisori come notifica ed è anche
incluso nel log attività di approvazione.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:comment' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The required comment on the approval."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Riassegnare i revisori all'approvazione
Per riassegnare i revisori a un'approvazione, utilizza il metodo
reassign sulla risorsa approvals e includi i parametri di percorso fileId e approvalId.
Il metodo reassign consente all'iniziatore dell'approvazione (o a un utente con l'autorizzazione
role=writer) di aggiungere o sostituire i revisori nell'oggetto
ReviewerResponse della risorsa
approvals. Un utente con l'autorizzazione role=reader può solo
riassegnare un'approvazione assegnata a se stesso. In questo modo, l'utente può riassegnare
una richiesta a un altro utente che è un revisore più competente.
I revisori possono essere riassegnati solo se lo stato
Status è IN_PROGRESS e il campo
response
per il revisore che viene riassegnato è impostato su NO_RESPONSE.
Tieni presente che non puoi rimuovere un revisore da un'approvazione. Se devi rimuovere un revisore, devi annullare l'approvazione e iniziarne una nuova.
Il corpo della richiesta è composto
dai campi facoltativi addReviewers e replaceReviewers. Ogni campo ha un
oggetto ripetuto per
AddReviewer
e
ReplaceReviewer,
che contengono un singolo revisore da aggiungere o una coppia di revisori da sostituire.
Puoi anche aggiungere il campo facoltativo message contenente il commento che vuoi
inviare ai nuovi revisori.
Il corpo della risposta contiene un'istanza della risorsa approvals. Il messaggio
viene inviato ai nuovi revisori come notifica ed è incluso anche nel
log delle attività di approvazione.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:reassign' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"addReviewers": [
{
"addedReviewerEmail": "new_reviewer@example.com"
}
],
"replaceReviewers": [
{
"addedReviewerEmail": "replacement_reviewer@example.com",
"removedReviewerEmail": "old_reviewer@example.com"
}
],
"message": "Reassigning reviewers for this approval request."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Annulla approvazione
Per annullare un'approvazione, utilizza il metodo cancel
nella risorsa approvals e includi
i parametri di percorso fileId e approvalId.
Il metodo cancel può essere chiamato solo dall'iniziatore dell'approvazione (o da un utente con l'autorizzazione role=writer) mentre l'approvazione Status è IN_PROGRESS.
Il corpo della richiesta è costituito da
un campo message facoltativo che è una stringa contenente il messaggio da allegare
all'annullamento dell'approvazione.
Il corpo della risposta contiene un'istanza della risorsa approvals. Il messaggio
viene inviato come notifica ed è incluso anche nel log attività di approvazione.
L'approvazione Status è impostata su CANCELLED e si trova nello stato Completato.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:cancel' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for cancelling this approval request."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Rifiuta approvazione
Per rifiutare un'approvazione, utilizza il metodo
decline sulla risorsa approvals e includi i parametri di percorso fileId e approvalId.
Il metodo decline può essere chiamato solo mentre l'approvazione Status è IN_PROGRESS.
Il corpo della richiesta è costituito da un campo message facoltativo, una stringa contenente il messaggio da allegare al rifiuto dell'approvazione.
Il corpo della risposta contiene un'istanza della risorsa approvals. Il messaggio
viene inviato come notifica ed è incluso anche nel log attività di approvazione.
Il campo response
dell'oggetto ReviewerResponse
dell'utente richiedente è impostato su DECLINED. Inoltre, l'approvazione
Status è impostata su DECLINED ed è in stato completato.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:decline' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for declining this approval request."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Approva approvazione
Per approvare un'approvazione, utilizza il metodo approve sulla risorsa approvals e includi i parametri di percorso fileId e approvalId.
Il metodo approve può essere chiamato solo mentre l'approvazione Status è IN_PROGRESS.
Il corpo della richiesta è costituito
da un campo message facoltativo che è una stringa contenente il messaggio da
allegare all'approvazione.
Il corpo della risposta contiene un'istanza della risorsa approvals. Il messaggio
viene inviato come notifica ed è incluso anche nel log attività di approvazione.
Il campo response
dell'oggetto ReviewerResponse
dell'utente richiedente è impostato su APPROVED. Inoltre, se questa è l'ultima risposta richiesta del revisore, l'approvazione Status viene impostata su APPROVED e
si trova nello stato completato.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:approve' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for approving this approval request."
}'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Individuare le approvazioni esistenti
La risorsa approvals può essere utilizzata anche per ottenere
e elencare lo stato delle tue approvazioni utilizzando l'API Drive.
Per visualizzare le approvazioni di un file, devi disporre dell'autorizzazione a leggere i metadati del file. Per saperne di più, consulta Ruoli e autorizzazioni.
Ottenere l'approvazione
Per ottenere un'approvazione per un file, utilizza il metodo get sulla risorsa approvals con i parametri di percorso fileId e approvalId. Se non conosci l'ID approvazione, puoi elencare le
approvazioni utilizzando il metodo list.
Il corpo della risposta contiene un'istanza della risorsa approvals.
curl
curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- APPROVAL_ID: l'ID dell'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Elenco approvazioni
Per elencare le approvazioni di un file, chiama il metodo list sulla risorsa approvals e includi il parametro di percorso fileId.
Il corpo della risposta è costituito da
un elenco di approvazioni del file. Il campo
items
include informazioni su ogni approvazione sotto forma di risorsa approvals.
Puoi anche passare i seguenti parametri di query per personalizzare la paginazione o filtrare le approvazioni:
pageSize: Il numero massimo di approvazioni da restituire per pagina. Se non impostipageSize, il server restituisce fino a 100 approvazioni.pageToken: un token di pagina ricevuto da una precedente chiamata dell'elenco. Questo token viene utilizzato per recuperare la pagina successiva. Deve essere impostato sul valore dinextPageTokendi una risposta precedente.
curl
curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals?pageSize=10' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Sostituisci quanto segue:
- FILE_ID: l'ID del file su cui si basa l'approvazione.
- ACCESS_TOKEN: il token OAuth 2.0 della tua app.
Argomenti correlati
- Ruoli e autorizzazioni
- Gestire le approvazioni come amministratore
- Richiedere approvazioni per i file su Google Drive