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

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

Notes

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