این صفحه نحوه تنظیم Field برچسب روی یک فایل گوگل درایو را شرح میدهد.
برای افزودن فراداده به یک فایل با تنظیم برچسب فایل، از متد files.modifyLabels استفاده کنید. بدنه درخواست شامل نمونهای از ModifyLabelsRequest برای تغییر مجموعه برچسبها روی یک فایل است. درخواست ممکن است شامل چندین تغییر باشد که به صورت خودکار اعمال میشوند. یعنی، اگر هر یک از تغییرات معتبر نباشند، کل بهروزرسانی ناموفق است و هیچ یک از تغییرات (که به طور بالقوه وابسته هستند) اعمال نمیشوند.
ModifyLabelsRequest شامل نمونهای از LabelModification است که اصلاحیهای بر روی یک برچسب در یک فایل است. همچنین ممکن است شامل نمونهای از FieldModification باشد که اصلاحیهای بر فیلد یک برچسب است.
در صورت موفقیت، بدنه پاسخ شامل برچسبهای اضافه شده یا بهروزرسانی شده توسط درخواست است. این برچسبها درون یک شیء modifiedLabels از نوع Label وجود دارند.
مثال
نمونه کد زیر نحوه استفاده از fieldId یک فیلد متنی را برای تنظیم مقدار برای این Field در یک فایل نشان میدهد. وقتی یک Field برچسب در ابتدا روی یک فایل تنظیم میشود، برچسب را به فایل اعمال میکند. سپس میتوانید یک فیلد واحد را لغو تنظیم کنید یا تمام فیلدهای مرتبط با برچسب را حذف کنید. برای اطلاعات بیشتر، به لغو تنظیم یک فیلد برچسب در یک فایل و حذف یک برچسب از یک فایل مراجعه کنید.
جاوا
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();
پایتون
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()
نود جی اس
/**
* 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، برچسب را با استفاده از API برچسبهای گوگل درایو بازیابی کنید. - VALUE :
valueجدید برای این فیلد. - LABEL_ID :
labelIdبرچسب (labelId) که قرار است تغییر کند. - FILE_ID :
fileIdفایلی که برچسبها برای آن تغییر داده شدهاند.
یادداشتها
- برای تنظیم برچسبی بدون فیلد،
labelModificationsبدون وجودfieldModificationsاعمال کنید. - برای تنظیم مقادیر گزینههای فیلد انتخاب، از شناسه
Choiceid) مقداری که میتوانید با واکشی طرح برچسب در Drive Labels API دریافت کنید، استفاده کنید. - فقط
Fieldکه از لیست مقادیر پشتیبانی میکند، میتواند چندین مقدار تنظیم کند، در غیر این صورت با خطای400: Bad Requestمواجه خواهید شد. - نوع دادهی
Fieldانتخاب شده را به درستی تنظیم کنید (مانند عدد صحیح، متن، کاربر و غیره)، در غیر این صورت با خطای400: Bad Requestمواجه خواهید شد. میتوانید نوع دادهی فیلد را با استفاده از Drive Labels API بازیابی کنید.