หน้านี้จะอธิบายวิธีตั้งค่าป้ายกำกับ
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