উন্নত ড্রাইভ লেবেল পরিষেবা

Google ড্রাইভ লেবেল উন্নত পরিষেবার মাধ্যমে আপনার ড্রাইভ ফাইল এবং ফোল্ডারগুলির জন্য লেবেল তৈরি এবং পরিচালনা করুন৷ এই উন্নত পরিষেবার সাহায্যে, আপনি Apps স্ক্রিপ্টে ড্রাইভ লেবেল API- এর সমস্ত বৈশিষ্ট্য ব্যবহার করতে পারেন৷

ড্রাইভ লেবেল প্রয়োগ করতে বা সরাতে, অ্যাডভান্সড ড্রাইভ পরিষেবা ব্যবহার করুন।

রেফারেন্স

এই পরিষেবা সম্পর্কে আরও তথ্যের জন্য, Google ড্রাইভ লেবেল API- এর ডকুমেন্টেশন দেখুন। Apps স্ক্রিপ্টের সমস্ত উন্নত পরিষেবাগুলির মতো, ড্রাইভ লেবেল API পরিষেবাটি পাবলিক API হিসাবে একই বস্তু, পদ্ধতি এবং পরামিতিগুলি ব্যবহার করে৷

সমস্যাগুলি রিপোর্ট করতে এবং অন্যান্য সহায়তা খুঁজতে, Google ড্রাইভ লেবেল API সমর্থন নির্দেশিকা দেখুন।

কোডের উদাহরণ

নিচের নমুনা কোডটি API-এর সংস্করণ 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);
}

একটি লেবেল পান

নিম্নলিখিত কোড নমুনা দেখায় কিভাবে একটি একক লেবেল তার রিসোর্স নাম দ্বারা পেতে হয় (যা লেবেলের স্ট্রিং মান)। লেবেলের নাম খুঁজতে, API-এর মাধ্যমে লেবেলের তালিকা পান বা ড্রাইভ লেবেল ম্যানেজার ব্যবহার করুন। লেবেল ম্যানেজার সম্পর্কে আরও তথ্যের জন্য, ড্রাইভ লেবেল পরিচালনা করুন এ যান।

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

একটি ড্রাইভ আইটেম জন্য লেবেল তালিকা

নিম্নলিখিত কোড নমুনা দেখায় কিভাবে একটি ড্রাইভ আইটেম পেতে এবং সেই আইটেমটিতে প্রয়োগ করা সমস্ত লেবেল তালিকাভুক্ত করা যায়৷

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