Cập nhật nhãn

Bạn có thể cập nhật một nhãn bằng cách áp dụng một nhóm 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 một thuộc tính nhãn hiện có (phần mô tả nhãn) hoặc bạn có thể thêm một 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 hàng loạt 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 bản cập nhật hàng loạt được áp dụng một cách nguyên tử. 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 này vẫn giữ nguyên.

Nếu quá trình 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 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ư:

  • Thuộc tính nhãn
  • Trường và loại trường
  • Các lựa chọn và thuộc tính của lựa chọn

Đâ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.

Danh mục hoạt động

Các thao tác sau đây mà phương thức labels.delta hỗ trợ có thể được nhóm thành các danh mục lớn 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á các đố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 labels.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 nhiều danh mục.

Loại 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
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 sử dụng mặt nạ để đảm bảo chỉ những trường mà bạn muốn chỉnh sửa đượ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ập hợp labels.

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

  • useAdminAccesstrue để sử dụng thông tin đăng nhập quản trị viên của người dùng. Máy chủ xác minh rằng người dùng là quản trị viên của nhãn trước khi cho phép truy cập.

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

  • Nhãn title thông qua phương thức property.

  • Một hoặc nhiều Field.

  • Một Tài nguyên nhãn đại diện cho mọi nhãn. Nó chứa một tài nguyên NameID. Đây là giá trị nhận dạng riêng biệt trên toàn cầu cho nhãn.

  • LabelViewLABEL_VIEW_FULL để đặt Chế độ xem 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ể có.

Ví dụ này sử dụng ID để cập nhật nhãn chính xác.

Python

body = {
'use_admin_access': True,
'requests': [{
  'update_label': {
    'properties': {
      'title': 'TITLE'
    },
    'update_mask': {
      'paths': ['title']
    }
  },
}, {
  'create_field': {
    'field': {
      'properties': {
        'display_name': 'DISPLAY_NAME'
      },
      'text_options': {}
    }
  }
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
  body=body,
  name='labels/ID').execute()

Node.js

var body = {
  'use_admin_access': true,
  'requests': [{
    'update_label': {
      'properties': {
        'title': 'TITLE'
      },
      'update_mask': {
        'paths': ['title']
      }
    },
  }, {
    'create_field': {
      'field': {
        'properties': {
          'display_name': 'DISPLAY_NAME'
        },
        'text_options': {}
      }
    }
  }],
  'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
  'resource': body,
  'name': 'labels/ID'
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

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=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 bài viết Vòng đời của nhãn.