Gelişmiş Drive Etiketleri Hizmeti

Google Drive Etiketleri gelişmiş hizmetini kullanarak Drive dosyalarınız ve klasörleriniz için etiketler oluşturup yönetebilirsiniz. Bu gelişmiş hizmetle, Apps Komut Dosyası'nda Drive Etiketleri API'nin tüm özelliklerini kullanabilirsiniz.

Drive etiketlerini uygulamak veya kaldırmak için Gelişmiş Drive Hizmeti'ni kullanın.

Referans

Bu hizmet hakkında daha fazla bilgi için Google Drive Labels API belgelerine bakın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi Drive Etiketleri API hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır.

Sorunları bildirmek ve diğer destek kaynaklarını bulmak için Google Drive Labels API destek kılavuzuna bakın.

Örnek kod

Aşağıdaki örnek kodda API'nin 2. sürümü kullanılmaktadır.

Liste etiketleri

Aşağıdaki kod örneğinde, isteği gönderen kullanıcının kullanabileceği etiketlerin listesinin nasıl alınacağı gösterilmektedir.

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);
}

Etiket alma

Aşağıdaki kod örneğinde, kaynak adına göre tek bir etiketin nasıl alınacağı gösterilmektedir (etiketin dize değeri). Etiket adını bulmak için API aracılığıyla etiket listesini alın veya Drive etiket yöneticisini kullanın. Etiket yöneticisi hakkında daha fazla bilgi edinmek için Drive etiketlerini yönetme başlıklı makaleyi inceleyin.

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 öğesi için etiketleri listeleme

Aşağıdaki kod örneğinde, bir Drive öğesinin nasıl alınacağı ve bu öğeye uygulanan tüm etiketlerin nasıl listeleneceği gösterilmektedir.

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.labels.length);

    appliedLabels.labels.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);
  }
}