Cập nhật nhãn

Bạn có thể cập nhật một nhãn bằng Google Drive Labels API bằng cách áp dụng một bộ yêu cầu cập nhật dẫn đến một bản sửa đổi bản nháp mới. Ví dụ: bạn có thể cập nhật nhãn hiện có Properties (nội dung mô tả nhãn cơ bản) hoặc bạn có thể thêm Field mới vào nhãn.

Thao tác cập nhật nhãn hoạt động như một thao tác cập nhật theo lô vì phương thức này lấy một danh sách các đối tượng Request cần cập nhật. Thao tác này sẽ cập nhật theo cùng thứ tự được chỉ định trong yêu cầu hàng loạt. Các bản cập nhật trong cập nhật theo lô được áp dụng một cách riêng lẻ. Tức là nếu có yêu cầu nào trong lô không thành công, 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ó thể phụ thuộc) được áp dụng. Nhãn không thay đổi.

Nếu bản cập nhật thành công, bạn phải xuất bản bản sửa đổi nháp thu được trước khi có thể sử dụng các thay đổi với bất kỳ mục nào trên Google Drive.

Cập nhật các đối tượng nhãn

Nhãn bao gồm nhiều loại đối tượng khác mà bạn có thể cập nhật, chẳng hạn như:

  • Nhãn Properties
  • Các đối tượng Field và loại trường
  • Lựa chọn Choice và Lựa chọn Properties

Đây là một số trong nhiều đối tượng kiểm soát giao diện và hoạt động của nhãn.

Các danh mục hoạt động

Các thao tác sau đây mà phương thức delta hỗ trợ trên tài nguyên labels có thể được nhóm thành các danh mục chung sau:

Danh mục Mô tả
TạoThêm đối tượng.
Cập nhậtCập nhật một số thuộc tính của một đối tượng.
BậtBật các đối tượng.
TắtTắt các đối tượng.
XoáXoá đối tượng.

Những danh mục này được dùng trong phần tiếp theo để mô tả hành vi của các thao tác cụ thể.

Yêu cầu cập nhật

Phương thức delta hoạt động bằng cách lấy một hoặc nhiều đối tượng Request, mỗi đối tượng chỉ định một loại yêu cầu duy nhất cần thực hiện. Có nhiều loại yêu cầu. Sau đây là thông tin chi tiết về các loại yêu cầu, được nhóm thành các danh mục khác nhau.

Đối tượng yêu cầu
Thuộc tính nhãn
Cập nhật UpdateLabelPropertiesRequest
Trường
Tạo CreateFieldRequest
Cập nhật UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Bật EnableFieldRequest
Tắt DisableFieldRequest
Xoá DeleteFieldRequest
Lựa chọn để chọn
Tạo CreateSelectionChoiceRequest
Cập nhật UpdateSelectionChoicePropertiesRequest
Bật EnableSelectionChoiceRequest
Tắt DisableSelectionChoiceRequest
Xoá DeleteSelectionChoiceRequest

Mặt nạ trường

Nhiều yêu cầu thuộc loại "Cập nhật" và "Tắt" yêu cầu phải có FieldMask. Đây là danh sách các trường được phân tách bằng dấu phẩy mà bạn muốn cập nhật trong khi giữ nguyên các trường khác. Bạn phải dùng mặt nạ để đảm bảo chỉ những trường bạn muốn chỉnh sửa mới được cập nhật. Bạn phải chỉ định ít nhất một trường.

Ví dụ

Để cập nhật nhãn, hãy sử dụng phương thức delta trên tài nguyên labels.

Bạn cũng phải chỉ định:

  • Tham số truy vấn useAdminAccess được đặt thành true để sử dụng thông tin đăng nhập quản trị viên của người dùng. Trước khi cấp quyền truy cập, máy chủ sẽ xác minh để đảm bảo rằng người dùng có đặc quyền quản trị Quản lý nhãn phân loại bắt buộc.

  • Một Request chỉ định các nội dung cập nhật áp dụng cho nhãn.

  • Một nhãn title thông qua đối tượng Properties.

  • Một hoặc nhiều đối tượng Field.

  • Một tài nguyên labels đại diện cho nhãn. Tệp này chứa một name và một id. Đây là giá trị nhận dạng duy nhất trên toàn cầu cho nhãn.

  • Một đối tượng LabelView dưới dạng LABEL_VIEW_FULL để đặt một khung hiển thị tài nguyên được áp dụng cho các phản hồi nhãn. LABEL_VIEW_FULL trả về tất cả các trường có thể.

Mã mẫu sau đây cho biết cách sử dụng id của nhãn để cập nhật nhãn chính xác:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Thay thế nội dung sau:

  • TITLE: Tiêu đề của nhãn.
  • DISPLAY_NAME: Tên hiển thị của trường.
  • ID: Mã nhận dạng của nhãn.

Nhãn, trường hoặc lựa chọn được cập nhật, mã nhận dạng bản sửa đổi của nhãn sẽ tăng lên và nhãn được lưu trữ trong cơ sở dữ liệu dưới dạng nhãn nháp. Nhãn này có State của PUBLISHED với hasUnpublishedChanges được đặt thành true, tức là có các thay đổi nháp nhưng người dùng không thể sử dụng. Nhãn mới cập nhật phải là PUBLISHED thì người dùng mới thấy được các thay đổi. Để biết thêm thông tin, hãy xem phần Vòng đời của nhãn.