শেয়ার্ড ড্রাইভ সমর্থন প্রয়োগ করুন

এই ডকুমেন্টটিতে বর্ণনা করা হয়েছে, কীভাবে গুগল ড্রাইভ এপিআই ব্যবহার করে আপনার অ্যাপে শেয়ার্ড ড্রাইভ সাপোর্ট বাস্তবায়ন করা যায়।

শেয়ার্ড ড্রাইভগুলো ‘মাই ড্রাইভ’ থেকে ভিন্ন সংগঠন, শেয়ারিং এবং মালিকানা মডেল অনুসরণ করে। যদি আপনার অ্যাপ শেয়ার্ড ড্রাইভে ফাইল তৈরি ও পরিচালনা করতে চায়, তবে আপনাকে অবশ্যই আপনার অ্যাপে শেয়ার্ড ড্রাইভ সাপোর্ট প্রয়োগ করতে হবে। আপনার এই প্রয়োগের জটিলতা আপনার অ্যাপের কার্যকারিতার উপর নির্ভর করে।

শুরু করার জন্য, আপনার অ্যাপ যখন নিম্নলিখিত অপারেশনগুলি সম্পাদন করবে, তখন আপনার অনুরোধগুলিতে অবশ্যই supportsAllDrives=true কোয়েরি প্যারামিটারটি অন্তর্ভুক্ত করতে হবে:

ড্রাইভ এপিআই ভি৩

  • files.get
  • files.list
  • files.create
  • files.update
  • files.copy
  • files.delete
  • changes.list
  • changes.getStartPageToken
  • permissions.list
  • permissions.get
  • permissions.create
  • permissions.update
  • permissions.delete

ড্রাইভ এপিআই ভি২

  • files.get
  • files.list
  • files.insert
  • files.update
  • files.patch
  • files.copy
  • files.trash
  • files.untrash
  • files.delete
  • files.touch
  • children.insert
  • parents.insert
  • changes.list
  • changes.getStartPageToken
  • changes.get
  • permissions.list
  • permissions.get
  • permissions.insert
  • permissions.update
  • permissions.patch
  • permissions.delete

supportsAllDrives=true প্যারামিটারটি গুগল ড্রাইভকে জানায় যে আপনার অ্যাপটি শেয়ার করা ড্রাইভের ফাইলগুলো পরিচালনা করার জন্য ডিজাইন করা হয়েছে।

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

শেয়ার করা ড্রাইভে বিষয়বস্তু অনুসন্ধান করুন

শেয়ার করা ড্রাইভে ব্যবহারকারীর ফাইল খুঁজে পেতে files রিসোর্সের list মেথডটি ব্যবহার করুন। কোনো শেয়ার করা ড্রাইভ অনুসন্ধান করতে, “শেয়ার করা ড্রাইভ অনুসন্ধান করুন” দেখুন।

list মেথডটিতে নিম্নলিখিত শেয়ার্ড ড্রাইভ-নির্দিষ্ট কোয়েরি প্যারামিটারগুলো রয়েছে:

  • driveId : যে শেয়ার্ড ড্রাইভটি অনুসন্ধান করতে চান তার আইডি।

  • corpora : আইটেমসমূহের (ফাইল বা ডকুমেন্ট) মূল অংশ, যার উপর কোয়েরিটি প্রযোজ্য। সমর্থিত বডিগুলো হলো user , domain , drive , এবং allDrives । কার্যকারিতার জন্য allDrives পরিবর্তে user বা drive করা শ্রেয়। ডিফল্টরূপে, কর্পোরা user এ সেট করা থাকে।

  • includeItemsFromAllDrives : ফলাফলে আমার ড্রাইভ এবং শেয়ার্ড ড্রাইভ উভয় আইটেমই অন্তর্ভুক্ত করা হবে কিনা। যদি এটি উপস্থিত না থাকে বা false সেট করা থাকে, তাহলে শেয়ার্ড ড্রাইভের আইটেমগুলি ফেরত দেওয়া হয় না।

  • supportsAllDrives : অনুরোধকারী অ্যাপ্লিকেশনটি My Drive এবং শেয়ার্ড ড্রাইভ উভয়কেই সমর্থন করে কিনা। যদি false হয়, তাহলে শেয়ার্ড ড্রাইভের আইটেমগুলো রেসপন্সে অন্তর্ভুক্ত করা হয় না।

নিম্নলিখিত কোয়েরি মোডগুলি শুধুমাত্র শেয়ার্ড ড্রাইভের জন্য প্রযোজ্য:

includeItemsFromAllDrives corpora কোয়েরির বিবরণ
true user ব্যবহারকারীর অ্যাক্সেস করা ফাইলগুলো কোয়েরি করে, যার মধ্যে শেয়ার্ড ড্রাইভ এবং মাই ড্রাইভের ফাইল উভয়ই অন্তর্ভুক্ত।
true domain ডোমেইনে শেয়ার করা ফাইলগুলো কোয়েরি করে, যার মধ্যে শেয়ার্ড ড্রাইভ এবং মাই ড্রাইভের ফাইল উভয়ই অন্তর্ভুক্ত।
true drive নির্দিষ্ট শেয়ার্ড ড্রাইভের সমস্ত আইটেম কোয়েরি করে। অনুরোধে অবশ্যই driveId উল্লেখ করতে হবে।
true allDrives ব্যবহারকারী যে ফাইলগুলো অ্যাক্সেস করেছেন এবং তিনি যে সমস্ত শেয়ার্ড ড্রাইভের সদস্য, সেগুলোর তথ্য অনুসন্ধান করে। উল্লেখ্য যে, রেসপন্সে incompleteSearch:true অন্তর্ভুক্ত থাকতে পারে, যা নির্দেশ করে যে এই অনুরোধের জন্য কিছু কর্পোরা অনুসন্ধান করা হয়নি।

নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে সমস্ত শেয়ার করা ড্রাইভের পাশাপাশি 'মাই ড্রাইভ'-এ ফাইল অনুসন্ধান করতে হয়:

পাইথন

files = []
page_token = None
while True:
    response = drive_service.files().list(
        q="mimeType='application/vnd.google-apps.folder'",
        spaces='drive',
        corpora='allDrives',
        supportsAllDrives=True,
        includeItemsFromAllDrives=True,
        fields='nextPageToken, files(id, name)',
        pageToken=page_token
    ).execute()
    files.extend(response.get('files', []))
    page_token = response.get('nextPageToken', None)
    if not page_token:
        break

নোড.জেএস

let files = [];
let pageToken = null;
do {
  const response = await drive_service.files.list({
    q: "mimeType='application/vnd.google-apps.folder'",
    spaces: 'drive',
    corpora: 'allDrives',
    supportsAllDrives: true,
    includeItemsFromAllDrives: true,
    fields: 'nextPageToken, files(id, name)',
    pageToken: pageToken
  });
  files = files.concat(response.data.files);
  pageToken = response.data.nextPageToken;
} while (pageToken);

জাভা

List<File> files = new ArrayList<>();
String pageToken = null;
do {
  FileList result = driveService.files().list()
      .setQ("mimeType='application/vnd.google-apps.folder'")
      .setSpaces("drive")
      .setCorpora("allDrives")
      .setSupportsAllDrives(true)
      .setIncludeItemsFromAllDrives(true)
      .setFields("nextPageToken, files(id, name)")
      .setPageToken(pageToken)
      .execute();
  files.addAll(result.getFiles());
  pageToken = result.getNextPageToken();
} while (pageToken != null);

কার্ল

curl -X GET \
  'https://www.googleapis.com/drive/v3/files?corpora=allDrives&includeItemsFromAllDrives=true&supportsAllDrives=true&fields=nextPageToken%2Cfiles(id%2Cname)' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -H 'Accept: application/json'

ACCESS_TOKEN জায়গায় আপনার অ্যাপের OAuth 2.0 টোকেনটি বসান।

শেয়ার করা ড্রাইভে পরিবর্তনগুলি ট্র্যাক করুন

একটি শেয়ার্ড ড্রাইভের পরিবর্তনগুলি ট্র্যাক করতে changes রিসোর্সের list মেথডটি ব্যবহার করুন। আরও তথ্যের জন্য, ব্যবহারকারী এবং শেয়ার্ড ড্রাইভের পরিবর্তনগুলি ট্র্যাক করুন দেখুন।

list মেথডটিতে নিম্নলিখিত শেয়ার্ড ড্রাইভ-নির্দিষ্ট কোয়েরি প্যারামিটারগুলো রয়েছে:

  • driveId : যে শেয়ার্ড ড্রাইভ থেকে পরিবর্তনগুলো ফেরত আসে। যদি নির্দিষ্ট করা থাকে, তাহলে পরিবর্তন আইডিগুলো শেয়ার্ড ড্রাইভের ভেতরের আইটেমগুলোর পরিবর্তনকে নির্দেশ করে, যা একটি ফাইলের বর্তমান অবস্থা প্রদান করে। একটি নির্দিষ্ট শেয়ার্ড ড্রাইভের পরিবর্তনকে নির্দেশ করতে, শনাক্তকারী হিসেবে শেয়ার্ড ড্রাইভ আইডি এবং পরিবর্তন আইডি উভয়ই ব্যবহার করতে হবে।

  • includeItemsFromAllDrives : শেয়ার করা ড্রাইভের ফাইল বা পরিবর্তনগুলো পরিবর্তনের তালিকায় অন্তর্ভুক্ত করা হবে কিনা।

  • supportsAllDrives : অনুরোধকারী অ্যাপ্লিকেশনটি শেয়ার্ড ড্রাইভ সমর্থন করে কিনা। যদি false হয়, তাহলে শেয়ার্ড ড্রাইভের আইটেমগুলো, যার মধ্যে শেয়ার্ড ড্রাইভ এবং এর ভেতরের ফাইল উভয়ই অন্তর্ভুক্ত, ফেরত দেওয়া হয় না।

নিম্নলিখিত কোয়েরি মোডগুলি শুধুমাত্র শেয়ার্ড ড্রাইভের জন্য প্রযোজ্য:

includeItemsFromAllDrives driveId কোয়েরির বিবরণ
true না ব্যবহারকারীর অ্যাক্সেস করা শেয়ার্ড ড্রাইভের ভেতরের বা বাইরের ফাইলগুলোর পরিবর্তন, সেইসাথে ব্যবহারকারী যে শেয়ার্ড ড্রাইভগুলোর সদস্য, সেগুলোর পরিবর্তনও এই পরিবর্তনগুলো প্রতিফলিত করে।
true হ্যাঁ পরিবর্তনগুলো নির্দিষ্ট শেয়ার্ড ড্রাইভ এবং তার ভেতরের আইটেমগুলোর পরিবর্তনের প্রতিফলন।

নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে একটি শেয়ার করা ড্রাইভে পরিবর্তনগুলি ট্র্যাক করতে হয়:

পাইথন

# 1. Get the start page token for the shared drive.
response = drive_service.changes().getStartPageToken(
    supportsAllDrives=True,
    driveId='SHARED_DRIVE_ID'
).execute()
start_page_token = response.get('startPageToken')

# 2. List changes starting from the page token.
response = drive_service.changes().list(
    pageToken=start_page_token,
    supportsAllDrives=True,
    includeItemsFromAllDrives=True,
    driveId='SHARED_DRIVE_ID'
).execute()
changes = response.get('changes', [])

নোড.জেএস

// 1. Get the start page token for the shared drive.
const tokenResponse = await drive_service.changes.getStartPageToken({
  supportsAllDrives: true,
  driveId: 'SHARED_DRIVE_ID'
});
const startPageToken = tokenResponse.data.startPageToken;

// 2. List changes starting from the page token.
const response = await drive_service.changes.list({
  pageToken: startPageToken,
  supportsAllDrives: true,
  includeItemsFromAllDrives: true,
  driveId: 'SHARED_DRIVE_ID'
});
const changes = response.data.changes;

জাভা

// 1. Get the start page token for the shared drive.
StartPageToken tokenResult = driveService.changes().getStartPageToken()
    .setSupportsAllDrives(true)
    .setDriveId("SHARED_DRIVE_ID")
    .execute();
String startPageToken = tokenResult.getStartPageToken();

// 2. List changes starting from the page token.
ChangeList changesResult = driveService.changes().list(startPageToken)
    .setSupportsAllDrives(true)
    .setIncludeItemsFromAllDrives(true)
    .setDriveId("SHARED_DRIVE_ID")
    .execute();
List<Change> changes = changesResult.getChanges();

কার্ল

# 1. Get the start page token for the shared drive.
curl -X GET \
  'https://www.googleapis.com/drive/v3/changes/startPageToken?supportsAllDrives=true&driveId=SHARED_DRIVE_ID' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -H 'Accept: application/json'

# 2. List changes starting from the page token.
curl -X GET \
  'https://www.googleapis.com/drive/v3/changes?pageToken=START_PAGE_TOKEN&supportsAllDrives=true&includeItemsFromAllDrives=true&driveId=SHARED_DRIVE_ID' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -H 'Accept: application/json'

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • SHARED_DRIVE_ID : শেয়ার্ড ড্রাইভের আইডি।
  • ACCESS_TOKEN : আপনার অ্যাপের OAuth 2.0 টোকেন।
  • START_PAGE_TOKEN : শেয়ার্ড ড্রাইভের স্টার্ট পেজ টোকেন।

SHARED_DRIVE_ID এর জায়গায় শেয়ার্ড ড্রাইভের আইডিটি বসান।

ড্রাইভ UI-তে শেয়ার্ড ড্রাইভ সাপোর্ট সক্রিয় করুন।

Drive UI ব্যবহার করে শেয়ার করা ড্রাইভের কন্টেন্ট অ্যাক্সেস করতে, Google Cloud কনসোলে Google Drive API-এর Drive UI ইন্টিগ্রেশন ট্যাবে ‘ Shared drives support’ বক্সটি চেক করা আছে কিনা তা নিশ্চিত করুন। আরও তথ্যের জন্য, ‘Configure a Drive UI integration’ দেখুন।

শেয়ার করা ড্রাইভের সাথে গুগল পিকার ব্যবহার করুন

গুগল পিকার শেয়ার্ড ড্রাইভ থেকে আইটেম নির্বাচন করা সমর্থন করে। শেয়ার্ড ড্রাইভ সমর্থন সক্রিয় করা এবং পিকার-এ শেয়ার্ড ড্রাইভ ভিউ যোগ করার বিষয়ে বিস্তারিত জানতে, গুগল পিকার এপিআই (Google Picker API) দেখুন।