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

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

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

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

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

ตัวอย่าง

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

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

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

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

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // 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',
    'setTextValues': ['VALUE'],
  };
  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
  • VALUE: value ใหม่สำหรับช่องนี้
  • LABEL_ID: labelId ของป้ายกำกับที่จะแก้ไข
  • FILE_ID: fileId ของไฟล์ที่มีป้ายกำกับ แก้ไขแล้ว

หมายเหตุ

  • หากต้องการตั้งค่าป้ายกำกับที่ไม่มีช่อง ให้ใช้ labelModifications ที่ไม่มีช่อง ปัจจุบันมี fieldModifications
  • หากต้องการกำหนดค่าสำหรับตัวเลือกช่องการเลือก ให้ใช้พารามิเตอร์ รหัส Choice ของค่า ที่คุณจะได้รับจากการดึงข้อมูลสคีมาป้ายกำกับใน Drive Labels API
  • เฉพาะ Field ที่รองรับรายการค่าเท่านั้นที่จะมีชุดค่าได้หลายรายการ ไม่เช่นนั้น คุณจะได้รับการตอบกลับเกี่ยวกับข้อผิดพลาด 400: Bad Request
  • ตั้งค่าประเภทค่าที่เหมาะสมสำหรับ Field ที่เลือก (เช่น จำนวนเต็ม ข้อความ ฯลฯ) ไม่เช่นนั้นคุณจะได้รับการตอบกลับข้อผิดพลาด 400: Bad Request คุณสามารถดึงประเภทข้อมูลฟิลด์โดยใช้ Drive Labels API