อัปเดตป้ายกํากับ

คุณอัปเดตป้ายกำกับรายการเดียวได้โดยใช้ชุดคำขออัปเดต ซึ่งจะส่งผลให้เกิด ฉบับร่างใหม่ เช่น คุณสามารถอัปเดตพร็อพเพอร์ตี้ของป้ายกำกับที่มีอยู่ (คำอธิบายของป้ายกำกับ) หรือเพิ่มFieldใหม่ลงในป้ายกำกับก็ได้

การอัปเดตป้ายกำกับจะทำหน้าที่เป็นการอัปเดตแบบเป็นกลุ่ม เนื่องจากวิธีการนี้ใช้รายการอัปเดต Request ออบเจ็กต์ โดยจะอัปเดตตามลำดับเดียวกันกับที่ระบุไว้ในคำขอแบบกลุ่ม ระบบจะใช้การอัปเดตในการอัปเดตแบบเป็นกลุ่มแบบอะตอม กล่าวคือ หากคำขอใดก็ตามใน กลุ่มไม่สำเร็จ การอัปเดตทั้งหมดจะไม่สำเร็จและจะไม่มีการใช้การเปลี่ยนแปลงใดๆ (ซึ่งอาจขึ้นอยู่กับคำขออื่น) ป้ายกำกับจะไม่มีการเปลี่ยนแปลง

หากอัปเดตสำเร็จ คุณต้องเผยแพร่ฉบับร่างที่ได้ ก่อนจึงจะใช้การเปลี่ยนแปลงกับรายการในไดรฟ์ได้

อัปเดตออบเจ็กต์ป้ายกำกับ

ป้ายกำกับมีออบเจ็กต์ประเภทอื่นๆ อีกมากมายที่อัปเดตได้ เช่น

  • พร็อพเพอร์ตี้ของป้ายกำกับ
  • ฟิลด์และประเภทฟิลด์
  • ตัวเลือกการเลือกและพร็อพเพอร์ตี้ตัวเลือกการเลือก

นี่เป็นเพียงออบเจ็กต์บางส่วนที่ควบคุมลักษณะที่ปรากฏและการทำงานของ ป้ายกำกับ

หมวดหมู่การดำเนินงาน

การดำเนินการต่อไปนี้ที่เมธอด labels.delta รองรับสามารถจัดกลุ่มเป็นหมวดหมู่กว้างๆ ได้ดังนี้

หมวดหมู่ คำอธิบาย
สร้างเพิ่มออบเจ็กต์
อัปเดตอัปเดตพร็อพเพอร์ตี้บางอย่างของออบเจ็กต์
เปิดใช้เปิดใช้ออบเจ็กต์
ปิดใช้ปิดใช้ออบเจ็กต์
ลบนำออบเจ็กต์ออก

เราจะใช้หมวดหมู่เหล่านี้ในส่วนถัดไปเพื่ออธิบายลักษณะการทำงานของ การดำเนินการที่เฉพาะเจาะจง

คำขออัปเดต

เมธอด labels.delta ทำงานโดยรับออบเจ็กต์ Request อย่างน้อย 1 รายการ ซึ่งแต่ละรายการจะระบุคำขอประเภทเดียวที่จะดำเนินการ คำขอมีหลายประเภท โดยประเภทคำขอจะแบ่งออกเป็นหมวดหมู่ต่างๆ ดังนี้

ประเภทคำขอ
พร็อพเพอร์ตี้ป้ายกำกับ
อัปเดต UpdateLabelPropertiesRequest
ฟิลด์
สร้าง CreateFieldRequest
อัปเดต UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
เปิดใช้ EnableFieldRequest
ปิดใช้ DisableFieldRequest
ลบ DeleteFieldRequest
ตัวเลือกการเลือก
สร้าง CreateSelectionChoiceRequest
อัปเดต UpdateSelectionChoicePropertiesRequest
เปิดใช้ EnableSelectionChoiceRequest
ปิดใช้ DisableSelectionChoiceRequest
ลบ DeleteSelectionChoiceRequest

ฟิลด์มาสก์

คำขอประเภท "อัปเดต" และ "ปิดใช้" หลายรายการต้องมีFieldMask นี่คือรายการฟิลด์ที่คั่นด้วยคอมมาซึ่งคุณต้องการอัปเดตโดยปล่อยให้ฟิลด์อื่นๆ ไม่มีการเปลี่ยนแปลง คุณต้องระบุมาสก์เพื่อให้แน่ใจว่าระบบจะอัปเดตเฉพาะฟิลด์ที่คุณต้องการแก้ไข คุณต้องระบุอย่างน้อย 1 ฟิลด์

ตัวอย่าง

หากต้องการอัปเดตป้ายกำกับ ให้ใช้วิธี delta ในคอลเล็กชัน labels

นอกจากนี้ คุณต้องระบุข้อมูลต่อไปนี้ด้วย

  • useAdminAccess จะtrue เพื่อใช้ข้อมูลเข้าสู่ระบบของผู้ดูแลระบบของผู้ใช้ เซิร์ฟเวอร์จะยืนยันว่าผู้ใช้เป็นผู้ดูแลระบบของป้ายกำกับก่อนที่จะอนุญาต ให้เข้าถึง

  • Request ที่ ระบุการอัปเดตที่เกี่ยวข้องกับป้ายกำกับ

  • ป้ายกำกับ title ผ่านเมธอด property

  • Field อย่างน้อย 1 รายการ

  • ทรัพยากรป้ายกำกับ ที่แสดงป้ายกำกับทั้งหมด โดยมีทรัพยากร Name และ ID ซึ่ง เป็นตัวระบุที่ไม่ซ้ำกันทั่วโลกสำหรับค่ายเพลง

  • LabelView คือ LABEL_VIEW_FULL เพื่อตั้งค่ามุมมองทรัพยากรที่ใช้กับคำตอบของป้ายกำกับ LABEL_VIEW_FULL จะแสดงผลฟิลด์ที่เป็นไปได้ทั้งหมด

ตัวอย่างนี้ใช้ ID เพื่ออัปเดตป้ายกำกับที่ถูกต้อง

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

ระบบจะอัปเดตป้ายกำกับ ฟิลด์ หรือตัวเลือก เพิ่มรหัสการแก้ไขของป้ายกำกับ และจัดเก็บป้ายกำกับไว้ในฐานข้อมูลเป็นป้ายกำกับฉบับร่าง ป้ายกำกับมี State ของ PUBLISHED ที่มี hasUnpublishedChanges=true ซึ่งหมายความว่ามีการเปลี่ยนแปลงฉบับร่าง แต่การเปลี่ยนแปลงนั้นยังไม่พร้อมใช้งานสำหรับผู้ใช้ ป้ายกำกับที่อัปเดตแล้วต้องเป็น PUBLISHED ก่อนที่ผู้ใช้จะเห็นการเปลี่ยนแปลง ดูข้อมูลเพิ่มเติมได้ที่วงจร ป้ายกำกับ