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

Nesta página, descrevemos como remover um rótulo Field de um único arquivo do Google Drive.

Para remover metadados de um arquivo cancelando a definição de um marcador, use o método files.modifyLabels. 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 vai falhar, e nenhuma das mudanças (potencialmente dependentes) será aplicada.

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

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

Exemplo

O exemplo de código a seguir mostra como usar fieldId e labelId para remover os valores de campo no fileId associado. Por exemplo, se um rótulo contiver texto e campos de usuário, a remoção do campo de texto vai remover o texto do rótulo, mas não vai alterar o campo de usuário. Já a remoção de um marcador exclui os dois: o texto e os campos 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 marcador usando a API Google Drive Labels.
  • LABEL_ID: o labelId do rótulo a ser modificado.
  • FILE_ID: o fileId do arquivo em que os rótulos são modificados.