Annullare l'impostazione di un campo etichetta in un file

In questa pagina viene descritto come annullare l'impostazione di un'etichetta Field su una singola File di Google Drive.

Per rimuovere i metadati da un file annullando l'impostazione dell'etichetta di un file, utilizza la files.modifyLabels. La corpo della richiesta contiene un'istanza di ModifyLabelsRequest: per modificare l'insieme di etichette in un file. La richiesta può contenere diversi modifiche applicate a livello atomico. Vale a dire se eventuali modifiche non valida, l'intero aggiornamento non andrà a buon fine e nessuno dei problemi (potenzialmente dipendenti) vengono applicate.

ModifyLabelsRequest contiene un'istanza di LabelModification ovvero la modifica di un'etichetta in un file. Potrebbe anche contenere un'istanza di FieldModification ovvero una modifica al campo di un'etichetta. Per annullare l'impostazione dei valori per il campo, imposta FieldModification.unsetValues su True.

Se l'esito è positivo, la risposta body contiene le etichette aggiunte o aggiornate dalla richiesta. Questi si trovano all'interno di Oggetto modifiedLabels di tipo Label.

Esempio

Il seguente esempio di codice mostra come utilizzare fieldId e labelId per annullare l'impostazione i valori dei campi nell'elemento fileId associato. Ad esempio, se un'etichetta contiene campi di testo e utente; se annulli il campo di testo, questo viene rimosso dall'etichetta ma lascia invariato il campo utente. La rimozione di un'etichetta, invece, elimina entrambi i campi utente e di testo associati all'etichetta. Per ulteriori 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 fieldId del campo da modificare. Per individuare fieldId, recupera l'etichetta utilizzando API Google Drive Etichette.
  • LABEL_ID: labelId dell'etichetta da modificare.
  • FILE_ID: i valori fileId del file per cui si trovano le etichette modificato.