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 desativando um marcador de arquivo, use o método files.modifyLabels. O corpo da solicitação contém uma instância de ModifyLabelsRequest para modificar o conjunto de identificadores 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, a atualização inteira não terá sucesso e nenhuma das mudanças (potencialmente dependentes) será aplicada.

O ModifyLabelsRequest contém uma instância de LabelModification, que é uma modificação de 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 redefinir 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. Elas existem em um objeto modifiedLabels do tipo Label.

Exemplo

O exemplo de código abaixo mostra como usar fieldId e labelId para redefinir os valores de campo no fileId associado. Por exemplo, se um rótulo tiver campos de texto e de usuário, desmarcar o campo de texto o remove do rótulo, mas não afeta o campo do usuário. Já a remoção de um marcador exclui tanto o texto quanto os campos do 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, extraia o marcador 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.