Annullare l'impostazione di un campo etichetta in un file

In questa pagina viene descritto come annullare l'impostazione di un'etichetta Field su un singolo file di Google Drive.

Per rimuovere i metadati da un file annullando l'impostazione di un'etichetta, utilizza il metodo files.modifyLabels. Il corpo della richiesta contiene un'istanza di ModifyLabelsRequest per modificare l'insieme di etichette su un file. La richiesta potrebbe contenere diverse modifiche applicate a livello atomico. Ciò significa che se alcune modifiche non sono valide, l'intero aggiornamento non va a buon fine e non viene applicata nessuna delle modifiche (potenzialmente dipendenti).

ModifyLabelsRequest contiene un'istanza di LabelModification, che è una modifica a un'etichetta di un file. Potrebbe anche contenere un'istanza di FieldModification, che è una modifica del campo di un'etichetta. Per annullare l'impostazione dei valori per il campo, imposta FieldModification.unsetValues su True.

In caso di esito positivo, il corpo della risposta contiene le etichette aggiunte o aggiornate dalla richiesta. Esistono all'interno di un oggetto modifiedLabels di tipo Label.

Esempio

Il seguente esempio di codice mostra come utilizzare fieldId e labelId per annullare l'impostazione dei valori dei campi sulla fileId associata. Ad esempio, se un'etichetta contiene sia campi di testo sia campi utente, se annulli la configurazione del campo di testo questo viene rimosso dall'etichetta, ma il campo utente rimane invariato. La rimozione di un'etichetta comporta l'eliminazione di sia il campo di testo sia quello dell'utente associati all'etichetta. Per maggiori informazioni, vedi Rimuovere un'etichetta da un file.

Java

LabelFieldModification fieldModification =
  new LabelFieldModification().setFieldId("FIELD_ID").setUnsetValues(true);

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','unsetValues':True}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();

Node.js

/**
* Unset a label with a field on a Drive file
* @return{obj} updated label data
**/
async function unsetLabelField() {
  // 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',
    'unsetValues': True,
  };
  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 valore fieldId del campo da modificare. Per individuare fieldId, recupera l'etichetta utilizzando l'API Google Drive Labels.
  • LABEL_ID: il valore labelId dell'etichetta da modificare.
  • FILE_ID: il valore fileId del file per il quale vengono modificate le etichette.