Thiết lập trường nhãn trên tệp

Trang này mô tả cách đặt nhãn Field trên một tệp duy nhất trên Google Drive.

Để thêm siêu dữ liệu vào một tệp bằng cách đặt nhãn tệp, hãy sử dụng phương thức files.modifyLabels. Phần nội dung yêu cầu chứa một phiên bản của ModifyLabelsRequest để sửa đổi tập hợp nhãn trên một tệp. Yêu cầu có thể chứa một số sửa đổi được áp dụng một cách nguyên tử. Tức là nếu có bất kỳ sửa đổi nào không hợp lệ, thì toàn bộ quá trình cập nhật sẽ không thành công và không có thay đổi nào (có khả năng phụ thuộc) được áp dụng.

The ModifyLabelsRequest chứa một phiên bản của LabelModification là một sửa đổi đối với nhãn trên một tệp. Nó cũng có thể chứa một phiên bản của FieldModification là một sửa đổi đối với trường của nhãn.

Nếu thành công, phần nội dung phản hồi sẽ chứa các nhãn được thêm hoặc cập nhật theo yêu cầu. Các nhãn này tồn tại trong một đối tượng modifiedLabels thuộc loại Label.

Ví dụ:

Mã mẫu sau đây cho biết cách sử dụng fieldId của một trường văn bản để đặt giá trị cho Field trên một tệp. Khi một nhãn Field được đặt ban đầu trên một tệp, nhãn đó sẽ áp dụng cho tệp. Sau đó, bạn có thể huỷ đặt một trường hoặc xoá tất cả các trường được liên kết với nhãn. Để biết thêm thông tin, hãy xem bài viết Huỷ đặt trường nhãn trên một tệpXoá nhãn khỏi một tệp.

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

Thay thế nội dung sau:

  • FIELD_ID: fieldId của trường cần sửa đổi. Để xác định vị trí fieldId, hãy truy xuất nhãn bằng API Nhãn của Google Drive.
  • VALUE: value mới cho trường này.
  • LABEL_ID: labelId của nhãn cần sửa đổi.
  • FILE_ID: fileId của tệp mà nhãn được sửa đổi.

Ghi chú

  • Để đặt nhãn không có trường, hãy áp dụng labelModifications mà không có fieldModifications.
  • Để đặt giá trị cho các lựa chọn trường lựa chọn, hãy sử dụng mã Choice của giá trị mà bạn có thể nhận được bằng cách tìm nạp giản đồ nhãn trong API Nhãn của Drive.
  • Chỉ Field hỗ trợ danh sách giá trị mới có thể đặt nhiều giá trị, nếu không, bạn sẽ nhận được thông báo lỗi 400: Bad Request.
  • Đặt loại giá trị thích hợp cho Field đã chọn (chẳng hạn như số nguyên, văn bản, người dùng, v.v.), nếu không, bạn sẽ nhận được thông báo lỗi 400: Bad Request. Bạn có thể truy xuất kiểu dữ liệu trường bằng API Nhãn của Drive.