Trang này mô tả cách đặt nhãn Field
trên một tệp duy nhất trên Google Drive.
Để thêm siêu dữ liệu vào một tệp bằng cách đặt nhãn tệp, hãy sử dụng phương thức files.modifyLabels
. Nội dung yêu cầu chứa một phiên bản của ModifyLabelsRequest
để sửa đổi bộ nhãn trên một tệp. Yêu cầu có thể chứa một số nội dung sửa đổi được áp dụng một cách riêng lẻ. Tức là nếu có bất kỳ nội dung sửa đổi nào không hợp lệ, thì toàn bộ quá trình cập nhật sẽ không thành công và không có thay đổi nào (có thể phụ thuộc) được áp dụng.
ModifyLabelsRequest
chứa một thực thể của LabelModification
. Đây là một nội dung sửa đổi đối với nhãn trên một tệp. Nội dung này cũng có thể chứa một thực thể của FieldModification
. Đây là một điểm sửa đổi đối với trường của nhãn.
Nếu thành công, nội dung phản hồi sẽ chứa các nhãn được thêm hoặc cập nhật theo yêu cầu. Các biến này nằm trong một đối tượng modifiedLabels
thuộc loại Label
.
Ví dụ:
Mã mẫu sau đây cho biết cách sử dụng fieldId
của một trường văn bản để đặt giá trị cho Field
này trên một tệp. Khi bạn đặt nhãn Field
lần đầu tiên cho một tệp, nhãn đó sẽ áp dụng cho tệp. Sau đó, bạn có thể huỷ đặt một trường hoặc xoá tất cả các trường được liên kết với nhãn. Để biết thêm thông tin, hãy xem bài viết Huỷ đặt trường nhãn trên tệp và Xoá nhãn khỏi tệp.
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;
}
}
Thay thế nội dung sau:
- FIELD_ID:
fieldId
của trường cần sửa đổi. Để xác định vị trífieldId
, hãy truy xuất nhãn bằng Google Drive Labels API. - VALUE:
value
mới cho trường này. - LABEL_ID:
labelId
của nhãn cần sửa đổi. - FILE_ID:
fileId
của tệp mà nhãn được sửa đổi.
Ghi chú
- Để đặt nhãn mà không có trường nào, hãy áp dụng
labelModifications
mà không cófieldModifications
. - Để đặt giá trị cho các lựa chọn của trường lựa chọn, hãy sử dụng mã nhận dạng
Choice
của giá trị mà bạn có thể nhận được bằng cách tìm nạp giản đồ nhãn trong API Nhãn của Drive. - Chỉ
Field
hỗ trợ danh sách giá trị mới có thể đặt nhiều giá trị, nếu không, bạn sẽ nhận được phản hồi lỗi400: Bad Request
. - Đặt loại giá trị thích hợp cho
Field
đã chọn (chẳng hạn như số nguyên, văn bản, người dùng, v.v.), nếu không bạn sẽ nhận được phản hồi lỗi400: Bad Request
. Bạn có thể truy xuất kiểu dữ liệu của trường bằng API Nhãn của Drive.