ยกเลิกการตั้งค่าช่องป้ายกำกับในไฟล์

หน้านี้จะอธิบายวิธีเลิกตั้งค่าป้ายกำกับ Field ในไฟล์ Google ไดรฟ์ไฟล์เดียว

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

ModifyLabelsRequest มีอินสแตนซ์ของ LabelModification ซึ่งเป็นการแก้ไขป้ายกำกับในไฟล์ นอกจากนี้ยังอาจมีอินสแตนซ์ ของ FieldModification ซึ่งเป็นการแก้ไขฟิลด์ของป้ายกำกับ หากต้องการยกเลิกการตั้งค่าสำหรับช่อง ให้ตั้งค่า FieldModification.unsetValues เป็น True

หากทำสำเร็จ เนื้อหา การตอบกลับจะมีป้ายกำกับที่เพิ่มหรืออัปเดตโดยคำขอ ซึ่งอยู่ในออบเจ็กต์ modifiedLabels ประเภท Label

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ fieldId และ labelId เพื่อยกเลิกการตั้งค่า ค่าฟิลด์ใน fileId ที่เชื่อมโยง เช่น หากป้ายกำกับมีทั้งฟิลด์ข้อความและฟิลด์ผู้ใช้ การยกเลิกการตั้งค่าฟิลด์ข้อความจะนำฟิลด์ข้อความออกจากป้ายกำกับ แต่จะไม่เปลี่ยนแปลงฟิลด์ผู้ใช้ ในขณะที่การนำป้ายกำกับออกจะลบทั้งข้อความและฟิลด์ผู้ใช้ที่เชื่อมโยงกับป้ายกำกับ ดูข้อมูลเพิ่มเติมได้ที่นำป้ายกำกับออกจากไฟล์

Java

LabelFieldModification fieldModification =
  new LabelFieldModification().setFieldId("FIELD_ID").setUnsetValues(true);

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','unsetValues':True}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();

Node.js

/**
* Unset a label with a field on a Drive file
* @return{obj} updated label data
**/
async function unsetLabelField() {
  // 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',
    'unsetValues': True,
  };
  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;
  }
}

แทนที่ค่าต่อไปนี้

  • FIELD_ID: fieldId ของฟิลด์ที่จะแก้ไข หากต้องการค้นหา fieldId ให้ดึงป้ายกำกับโดยใช้ Google Drive Labels API
  • LABEL_ID: labelId ของป้ายกำกับที่จะแก้ไข
  • FILE_ID: fileId ของไฟล์ที่มีการแก้ไขป้ายกำกับ