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

หน้านี้จะอธิบายวิธียกเลิกการตั้งค่าป้ายกำกับ 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 ของไฟล์ที่มีป้ายกำกับ แก้ไขแล้ว