Ustawienie pola etykiety w pliku

Z tego artykułu dowiesz się, jak ustawić etykietę Field dla pojedynczego pliku na Dysku Google.

Aby dodać metadane do pliku przez ustawienie etykiety pliku, użyj metody files.modifyLabels. Treść żądania zawiera instancję ModifyLabelsRequest, która służy do modyfikowania zestawu etykiet w pliku. Prośba może zawierać kilka modyfikacji zastosowanych atomowo. Oznacza to, że jeśli jakieś modyfikacje są nieprawidłowe, oznacza to, że cała aktualizacja się nie powiedzie i nie zostaną zastosowane żadne (potencjalnie zależne) zmiany.

ModifyLabelsRequest zawiera instancję LabelModification, która jest modyfikacją etykiety w pliku. Może też zawierać wystąpienie FieldModification, które jest modyfikacją pola etykiety.

Jeśli operacja się uda, treść odpowiedzi będzie zawierać etykiety dodane lub zaktualizowane przez żądanie. Istnieją one w obiekcie modifiedLabels typu Label.

Przykład

Poniższy przykładowy kod pokazuje, jak użyć fieldId w polu tekstowym, aby ustawić wartość Field w pliku. Jeśli etykieta Field zostanie początkowo ustawiona w pliku, zostanie ona zastosowana do tego pliku. Następnie możesz usunąć ustawienie pojedynczego pola lub usunąć wszystkie pola powiązane z etykietą. Więcej informacji znajdziesz w artykułach Usuwanie etykiety z pliku i Usuwanie etykiety z pliku.

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

Zastąp następujące elementy:

  • FIELD_ID: fieldId pola do zmodyfikowania. Aby znaleźć obiekt fieldId, pobierz etykietę za pomocą interfejsu Google Drive Labels API.
  • VALUE: nowa wartość value dla tego pola.
  • LABEL_ID: labelId etykiety do zmiany.
  • FILE_ID: fileId pliku, w którym zostały zmodyfikowane etykiety.

Uwagi

  • Aby ustawić etykietę bez pól, zastosuj atrybut labelModifications bez pola fieldModifications.
  • Aby ustawić wartości opcji pola wyboru, użyj identyfikatora Choice wartości, którą można uzyskać, pobierając schemat etykiety za pomocą interfejsu Drive Labels API.
  • Tylko Field, który obsługuje listy wartości, może mieć wiele ustawionych wartości. W przeciwnym razie otrzymasz odpowiedź o błędzie 400: Bad Request.
  • Ustaw odpowiedni typ wartości dla wybranego elementu Field (np. liczbę całkowitą, tekst, użytkownika itp.). W przeciwnym razie otrzymasz odpowiedź o błędzie 400: Bad Request. Typ danych pól możesz pobrać za pomocą interfejsu Drive Labels API.