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