Questa pagina descrive come impostare un'etichetta
Field
su un singolo
file di Google Drive.
Per aggiungere metadati a un file impostando un'etichetta, utilizza il metodo
files.modifyLabels
. Il
corpo della richiesta
contiene un'istanza di
ModifyLabelsRequest
per modificare l'insieme di etichette di un file. La richiesta potrebbe contenere diverse modifiche applicate in modo atomico. ovvero, se una modifica non è
valida, l'intero aggiornamento non va a buon fine e nessuna delle modifiche (potenzialmente
dipendenti) viene applicata.
ModifyLabelsRequest
contiene un'istanza di
LabelModification
che è una modifica a un'etichetta su un file. Potrebbe anche contenere un'istanza
di
FieldModification
che è una modifica al campo di un'etichetta.
In caso di esito positivo, il corpo
della risposta contiene
le etichette aggiunte o aggiornate dalla richiesta. Questi esistono all'interno di un oggetto modifiedLabels
di tipo Label
.
Esempio
Il seguente esempio di codice mostra come utilizzare fieldId
di un campo di testo per impostare un valore per questo Field
in un file. Quando un'etichetta Field
viene inizialmente impostata su un file, viene applicata al file. Puoi quindi deselezionare un singolo campo o rimuovere tutti i campi associati
all'etichetta. Per ulteriori informazioni, vedi Annullare l'impostazione di un campo etichetta in un file e Rimuovere un'etichetta da un file.
Java
LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));
ModifyLabelsRequest modifyLabelsRequest =
new ModifyLabelsRequest()
.setLabelModifications(
ImmutableList.of(
new LabelModification()
.setLabelId("LABEL_ID")
.setFieldModifications(ImmutableList.of(fieldModification))));
ModifyLabelsResponse modifyLabelsResponse = driveService.files().modifyLabels("FILE_ID", modifyLabelsRequest).execute();
Python
field_modification = {'fieldId':'FIELD_ID','setTextValues':['VALUE']}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}
modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute()
Node.js
/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
const fieldModification = {
'fieldId': 'FIELD_ID',
'setTextValues': ['VALUE'],
};
const labelModification = {
'labelId': 'LABEL_ID',
'fieldModifications': [fieldModification],
};
const labelModificationRequest = {
'labelModifications': [labelModification],
};
try {
const updateResponse = await service.files.modifyLabels({
fileId: 'FILE_ID',
resource: labelModificationRequest,
});
return updateResponse;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
Sostituisci quanto segue:
- FIELD_ID: Il
fieldId
del campo da modificare. Per individuare ilfieldId
, recupera l'etichetta utilizzando l'API Google Drive Labels. - VALUE: Il nuovo
value
per questo campo. - LABEL_ID: il
labelId
dell'etichetta da modificare. - FILE_ID: Il
fileId
del file per cui le etichette sono modificate.
Note
- Per impostare un'etichetta senza campi, applica
labelModifications
senzafieldModifications
. - Per impostare i valori per le opzioni del campo di selezione, utilizza l'ID
Choice
del valore che puoi ottenere recuperando lo schema delle etichette nell'API Drive Labels. - Solo un
Field
che supporta elenchi di valori può avere più valori impostati, altrimenti riceverai una risposta di errore400: Bad Request
. - Imposta il tipo di valore corretto per
Field
selezionato (ad esempio numero intero, testo, utente e così via), altrimenti riceverai una risposta di errore400: Bad Request
. Puoi recuperare il tipo di dati del campo utilizzando l'API Drive Labels.