Impostare un campo etichetta su un file

Questa pagina descrive come impostare un'etichetta Field su un singolo file di Google Drive.

Per aggiungere metadati a un file impostando un'etichetta, utilizza il metodo files.modifyLabels. Il corpo della richiesta contiene un'istanza di ModifyLabelsRequest per modificare l'insieme di etichette in un file. La richiesta potrebbe contenere diverse modifiche applicate in modo atomico. In altre parole, se le modifiche non sono valide, l'intero aggiornamento non va a buon fine e nessuna delle modifiche (potenzialmente dipendenti) viene applicata.

ModifyLabelsRequest contiene un'istanza di LabelModification che è una modifica a un'etichetta in un file. Potrebbe anche contenere un'istanza di FieldModification, che è una modifica al campo di un'etichetta.

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 il fieldId di un campo di testo per impostare un valore per questo Field in un file. Quando un'etichetta Field viene impostata inizialmente su un file, l'etichetta viene applicata al file. Puoi quindi annullare l'impostazione di un singolo campo o rimuovere tutti i campi associati all'etichetta. Per ulteriori informazioni, vedi Reimpostare un campo dell'etichetta in un file e Rimuovere un'etichetta da un file.

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

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

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

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // 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',
    'setTextValues': ['VALUE'],
  };
  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 trovare fieldId, recupera l'etichetta utilizzando l'API Google Drive Labels.
  • VALUE: il nuovo value per questo campo.
  • LABEL_ID: il labelId dell'etichetta da modificare.
  • FILE_ID: il fileId del file per cui vengono modificate le etichette.

Note

  • Per impostare un'etichetta senza campi, applica labelModifications senza fieldModifications.
  • Per impostare i valori per le opzioni del campo di selezione, utilizza l'Choice ID del valore che puoi ottenere recuperando lo schema delle etichette nell'API Drive Labels.
  • Solo un Field che supporta gli elenchi di valori può avere più valori impostati, altrimenti riceverai una risposta di errore 400: Bad Request.
  • Imposta il tipo di valore appropriato per il Field selezionato (ad esempio, intero, testo, utente e così via), altrimenti riceverai una risposta di errore 400: Bad Request. Puoi recuperare il tipo di dati del campo utilizzando l'API Drive Labels.