Cancelar a definição de um campo de marcador em um arquivo

Esta página descreve como remover um rótulo Field de um único arquivo do Google Drive.

Para remover metadados de um arquivo desmarcando um rótulo de arquivo, use o files.modifyLabels método. O corpo da solicitação contém uma instância de ModifyLabelsRequest para modificar o conjunto de rótulos em um arquivo. A solicitação pode conter várias modificações que são aplicadas atomicamente. Ou seja, se alguma modificação não for válida, toda a atualização falhará e nenhuma das mudanças (possivelmente dependentes) será aplicada.

O ModifyLabelsRequest contém uma instância de LabelModification que é uma modificação em um rótulo em um arquivo. Ele também pode conter uma instância de FieldModification que é uma modificação no campo de um rótulo. Para desmarcar os valores do campo, defina FieldModification.unsetValues como True.

Se for bem-sucedido, o corpo da resposta vai conter os rótulos adicionados ou atualizados pela solicitação. Eles existem em um modifiedLabels objeto do tipo Label.

Exemplo

O exemplo de código a seguir mostra como usar fieldId e labelId para desmarcar os valores de campo no fileId associado. Por exemplo, se um rótulo contiver campos de texto e de usuário, desmarcar o campo de texto o removerá do rótulo, mas deixará o campo de usuário intacto. Já a remoção de um rótulo exclui os dois campos de texto e de usuário associados a ele. Para mais informações, consulte Remover um rótulo de um arquivo.

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;
  }
}

Substitua:

  • FIELD_ID: o fieldId do campo a ser modificado. Para localizar o fieldId, recupere o rótulo usando a API Google Drive Labels.
  • LABEL_ID: o labelId do rótulo a ser modificado.
  • FILE_ID: O fileId do arquivo para o qual os rótulos são modificados.