خدمة التصنيفات المتقدّمة في Drive

يمكنك إنشاء التصنيفات وإدارتها لملفات ومجلدات Drive باستخدام خدمة "التصنيفات المتقدّمة" في Google Drive. من خلال هذه الخدمة المتقدّمة، يمكنك استخدام جميع ميزات Drive Categories API في "برمجة التطبيقات".

لتطبيق تصنيفات Drive أو إزالتها، استخدِم خدمة Drive المتقدّمة.

مَراجع

لمزيد من المعلومات حول هذه الخدمة، يمكنك الاطّلاع على مستندات واجهة برمجة تطبيقات التصنيفات في Google Drive. مثل جميع الخدمات المتقدمة في "برمجة التطبيقات"، تستخدم خدمة واجهة برمجة التطبيقات Drive labels API العناصر والطرق والمعلَمات نفسها المستخدَمة في واجهة برمجة التطبيقات العامة.

للإبلاغ عن المشاكل والعثور على وسائل دعم أخرى، يُرجى الاطّلاع على دليل الدعم لواجهة برمجة التطبيقات Google Drive التصنيفات.

نموذج التعليمات البرمجية

يستخدم نموذج الرمز البرمجي أدناه الإصدار 2 من واجهة برمجة التطبيقات.

تصنيفات القوائم

يوضح نموذج التعليمات البرمجية التالي كيفية الحصول على قائمة بالتصنيفات المتاحة للمستخدم الذي يقدم الطلب.

advanced/driveLabels.gs
/**
 * List labels available to the user.
 */
function listLabels() {
  let pageToken = null;
  let labels = [];
  do {
    try {
      const response = DriveLabels.Labels.list({
        publishedOnly: true,
        pageToken: pageToken
      });
      pageToken = response.nextPageToken;
      labels = labels.concat(response.labels);
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed to list labels with error %s', err.message);
    }
  } while (pageToken != null);

  console.log('Found %d labels', labels.length);
}

الحصول على تصنيف

يوضح نموذج الرمز البرمجي التالي كيفية الحصول على تصنيف واحد باستخدام اسم المورد (وهو قيمة سلسلة التصنيف). للعثور على اسم التصنيف، احصل على قائمة التصنيفات من خلال واجهة برمجة التطبيقات أو استخدم "مدير تسميات Drive". لمزيد من المعلومات حول أداة إدارة التصنيفات، يُرجى الانتقال إلى المقالة إدارة تصنيفات Drive.

advanced/driveLabels.gs
/**
 * Get a label by name.
 * @param {string} labelName The label name.
 */
function getLabel(labelName) {
  try {
    const label = DriveLabels.Labels.get(labelName, {view: 'LABEL_VIEW_FULL'});
    const title = label.properties.title;
    const fieldsLength = label.fields.length;
    console.log(`Fetched label with title: '${title}' and ${fieldsLength} fields.`);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to get label with error %s', err.message);
  }
}

سرد تصنيفات لعنصر في Drive

يوضح نموذج التعليمات البرمجية التالي كيفية الحصول على عنصر في Drive، ويسرد جميع التصنيفات التي تم تطبيقها على هذا العنصر.

advanced/driveLabels.gs
/**
 * List Labels on a Drive Item
 * Fetches a Drive Item and prints all applied values along with their to their
 * human-readable names.
 *
 * @param {string} fileId The Drive File ID
 */
function listLabelsOnDriveItem(fileId) {
  try {
    const appliedLabels = Drive.Files.listLabels(fileId);

    console.log('%d label(s) are applied to this file', appliedLabels.items.length);

    appliedLabels.items.forEach((appliedLabel) => {
      // Resource name of the label at the applied revision.
      const labelName = 'labels/' + appliedLabel.id + '@' + appliedLabel.revisionId;

      console.log('Fetching Label: %s', labelName);
      const label = DriveLabels.Labels.get(labelName, {view: 'LABEL_VIEW_FULL'});

      console.log('Label Title: %s', label.properties.title);

      Object.keys(appliedLabel.fields).forEach((fieldId) => {
        const fieldValue = appliedLabel.fields[fieldId];
        const field = label.fields.find((f) => f.id == fieldId);

        console.log(`Field ID: ${field.id}, Display Name: ${field.properties.displayName}`);
        switch (fieldValue.valueType) {
          case 'text':
            console.log('Text: %s', fieldValue.text[0]);
            break;
          case 'integer':
            console.log('Integer: %d', fieldValue.integer[0]);
            break;
          case 'dateString':
            console.log('Date: %s', fieldValue.dateString[0]);
            break;
          case 'user':
            const user = fieldValue.user.map((user) => {
              return `${user.emailAddress}: ${user.displayName}`;
            }).join(', ');
            console.log(`User: ${user}`);
            break;
          case 'selection':
            const choices = fieldValue.selection.map((choiceId) => {
              return field.selectionOptions.choices.find((choice) => choice.id === choiceId);
            });
            const selection = choices.map((choice) => {
              return `${choice.id}: ${choice.properties.displayName}`;
            }).join(', ');
            console.log(`Selection: ${selection}`);
            break;
          default:
            console.log('Unknown: %s', fieldValue.valueType);
            console.log(fieldValue.value);
        }
      });
    });
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}