تعيين حقل تصنيف في ملف

توضّح هذه الصفحة طريقة إضافة تصنيف 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 للملف الذي تم تعديل التصنيفات له.

ملاحظات

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