ضبط حقل تصنيف على ملف

توضّح هذه الصفحة طريقة إضافة تصنيف Field على ملف واحد في Google Drive.

لإضافة بيانات وصفية إلى ملف من خلال تصنيف ملف، استخدِم طريقة 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 Categories API.
  • VALUE: السمة value الجديدة لهذا الحقل.
  • LABEL_ID: labelId للتصنيف المطلوب تعديله.
  • FILE_ID: fileId من الملف الذي تم تعديل التصنيفات له.

Notes

  • لضبط تصنيف بدون حقول، طبِّق labelModifications بدون وجود fieldModifications.
  • لضبط قيم لخيارات حقول التحديد، استخدِم رقم تعريف Choice للقيمة التي يمكنك الحصول عليها من خلال استرجاع مخطط التصنيفات في Drive Categories API.
  • يمكن ضبط قيم متعدّدة فقط للسمة Field المتوافقة مع قوائم القيم، وإلّا ستتلقّى استجابة الخطأ 400: Bad Request.
  • اضبط نوع القيمة المناسب للسمة Field المحدّدة (مثل عدد صحيح أو نص أو مستخدم أو غير ذلك)، وإلا ستتلقى استجابة الخطأ 400: Bad Request. ويمكنك استرداد نوع بيانات الحقل باستخدام واجهة برمجة التطبيقات Drive التصنيفات.