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

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

ملاحظات

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