রিসোর্স পরিবর্তনের জন্য বিজ্ঞপ্তি

এই ডকুমেন্ট থেকে আপনি জানতে পারবেন যে কোনও রিসোর্স পরিবর্তন হলে পুশ বিজ্ঞপ্তির মাধ্যমে কীভাবে আপনার অ্যাপ্লিকেশনকে জানানো যায়।

এক নজরে

Google Drive API পুশ বিজ্ঞপ্তি প্রদান করে যা আপনাকে রিসোর্সে হওয়া পরিবর্তন মনিটর করতে দেয়। আপনার অ্যাপ্লিকেশনের পারফর্ম্যান্স উন্নত করতে আপনি এই ফিচার ব্যবহার করতে পারেন। এটি আপনাকে অতিরিক্ত নেটওয়ার্ক এবং কম্পিউট খরচ বাদ দিতে দেয় যা রিসোর্স পরিবর্তিত হয়েছে কিনা তা নির্ধারণ করতে পোলিং করার সাথে জড়িত। যখনই কোনও দেখা রিসোর্স পরিবর্তন হয়, Google Drive API আপনার অ্যাপ্লিকেশনকে বিজ্ঞপ্তি দেয়।

পুশ বিজ্ঞপ্তি ব্যবহার করতে, আপনাকে দুটি কাজ করতে হবে:

  • আপনার রিসিভিং URL বা "ওয়েবহুক" কলব্যাক রিসিভার সেট-আপ করুন।

    এটি হল একটি HTTPS সার্ভার যা API বিজ্ঞপ্তি মেসেজ ম্যানেজ করে, কোনও রিসোর্স পরিবর্তন হলে এই মেসেজ ট্রিগার হয়।

  • আপনি দেখতে চান এমন প্রতিটি রিসোর্স এন্ডপয়েন্টের জন্য একটি (বিজ্ঞপ্তি চ্যানেল) সেট-আপ করুন।

    একটি চ্যানেল বিজ্ঞপ্তি মেসেজের জন্য রাউটিং তথ্য নির্দিষ্ট করে। চ্যানেল সেট-আপের অংশ হিসেবে, আপনাকে অবশ্যই সেই নির্দিষ্ট URL শনাক্ত করতে হবে যেখানে আপনি বিজ্ঞপ্তি পেতে চান। কোনও চ্যানেলের রিসোর্স পরিবর্তন হলে, Google Drive API সেই URL-এ POST অনুরোধ হিসেবে একটি বিজ্ঞপ্তি মেসেজ পাঠায়।

বর্তমানে, Google Drive API files এবং changes পদ্ধতিতে পরিবর্তনের জন্য বিজ্ঞপ্তি পাঠায়।

বিজ্ঞপ্তি চ্যানেল তৈরি করুন

পুশ বিজ্ঞপ্তির অনুরোধ করতে, আপনি যে রিসোর্স মনিটর করতে চান তার জন্য আপনাকে অবশ্যই একটি বিজ্ঞপ্তি চ্যানেল সেট-আপ করতে হবে। আপনার বিজ্ঞপ্তি চ্যানেল সেট-আপ করার পরে, কোনও দেখা রিসোর্স পরিবর্তন হলে Google Drive API আপনার অ্যাপ্লিকেশনকে জানায়।

স্মার্টওয়াচ সংক্রান্ত অনুরোধ করা

প্রতিটি দেখার যোগ্য Google Drive API রিসোর্সের সাথে একটি watch পদ্ধতি URI-তে নিম্নলিখিত ফর্ম্যাটে থাকে:

https://www.googleapis.com/API_NAME/API_VERSION/RESOURCE_PATH/watch

কোনও নির্দিষ্ট রিসোর্সে পরিবর্তন সম্পর্কে মেসেজের জন্য বিজ্ঞপ্তি চ্যানেল সেট-আপ করতে, রিসোর্সের জন্য watch পদ্ধতিতে POST অনুরোধ পাঠান।

প্রতিটি বিজ্ঞপ্তি চ্যানেল কোনও নির্দিষ্ট ব্যবহারকারী এবং কোনও নির্দিষ্ট রিসোর্স (বা রিসোর্সের সেট) উভয়ের সাথেই যুক্ত থাকে। বর্তমান ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টের মালিকানা বা এই রিসোর্স অ্যাক্সেস করার অনুমতি না থাকলে, watch অনুরোধ সফল হবে না।

উদাহরণ

নিচে দেওয়া কোডের স্যাম্পেল থেকে বোঝা যায় যে কীভাবে files.watch পদ্ধতি ব্যবহার করে একটি files রিসোর্সে পরিবর্তন লক্ষ্য করা শুরু করার জন্য channels রিসোর্স ব্যবহার করতে হয়:

POST https://www.googleapis.com/drive/v3/files/fileId/watch
Authorization: Bearer CURRENT_USER_AUTH_TOKEN
Content-Type: application/json

{
  "id": "01234567-89ab-cdef-0123456789ab",
  "type": "web_hook",
  "address": "https://mydomain.com/notifications",
  ...
  "token": "target=myApp-myFilesChannelDest",
  "expiration": 1426325213000
}

অনুরোধের বডিতে, আপনার চ্যানেল id, type web_hook হিসেবে এবং আপনার রিসিভিং URL address-এ প্রদান করুন। এছাড়াও, আপনি ঐচ্ছিকভাবে এগুলি দিতে পারেন:

  • আপনার চ্যানেল টোকেন হিসেবে ব্যবহার করার জন্য token।
  • আপনার অনুরোধ করা চ্যানেল শেষ হওয়ার সময়ের জন্য মিলিসেকেন্ডে expiration সময়।

নিম্নলিখিত কোড স্যাম্পেল থেকে বোঝা যায় যে কীভাবে channels রিসোর্স ব্যবহার করে changes-এর জন্য changes.watch পদ্ধতি ব্যবহার করে দেখা শুরু করা যায়:

POST https://www.googleapis.com/drive/v3/changes/watch
Authorization: Bearer CURRENT_USER_AUTH_TOKEN
Content-Type: application/json

{
  "id": "4ba78bf0-6a47-11e2-bcfd-0800200c9a77",
  "type": "web_hook",
  "address": "https://mydomain.com/notifications",
  ...
  "token": "target=myApp-myChangesChannelDest",
  "expiration": 1426325213000
}

অনুরোধের বডিতে, আপনার চ্যানেল id, type web_hook হিসেবে এবং আপনার রিসিভিং URL address-এ প্রদান করুন। এছাড়াও, আপনি ঐচ্ছিকভাবে এগুলি দিতে পারেন:

  • আপনার চ্যানেল টোকেন হিসেবে ব্যবহার করার জন্য token।
  • আপনার অনুরোধ করা চ্যানেল শেষ হওয়ার সময়ের জন্য মিলিসেকেন্ডে expiration সময়।

প্রয়োজনীয় প্রপার্টি

প্রতিটি watch অনুরোধের সাথে, আপনাকে অবশ্যই এই ফিল্ডগুলি প্রদান করতে হবে:

  • একটি id প্রপার্টি স্ট্রিং যা আপনার প্রোজেক্টের মধ্যে এই নতুন বিজ্ঞপ্তি চ্যানেলকে অনন্যভাবে শনাক্ত করে। আমরা সাজেস্ট করি যে আপনি ইউনিভার্সাল অনন্য শনাক্তকারী (UUID) বা একই ধরনের অনন্য স্ট্রিং ব্যবহার করুন। সর্বাধিক দৈর্ঘ্য: ৬৪টি অক্ষর।

    আপনার সেট করা আইডি ভ্যালু এই চ্যানেলের জন্য পাওয়া প্রতিটি বিজ্ঞপ্তি মেসেজের X-Goog-Channel-Id HTTP হেডারে ইকো ব্যাক করা হয়।

  • web_hook ভ্যালুতে সেট করা একটি type প্রপার্টি স্ট্রিং।

  • address প্রপার্টি স্ট্রিং URL-এ সেট করা থাকে যা এই বিজ্ঞপ্তি চ্যানেলের জন্য বিজ্ঞপ্তি শোনে এবং উত্তর দেয়। এটি হল আপনার ওয়েবহুক কলব্যাক URL এবং এটিতে অবশ্যই HTTPS ব্যবহার করতে হবে।

    মনে রাখবেন, আপনার ওয়েব সার্ভারে বৈধ SSL সার্টিফিকেট ইনস্টল করা থাকলে, তবেই Google Drive API এই HTTPS অ্যাড্রেসে বিজ্ঞপ্তি পাঠাতে পারবে। ভুল সার্টিফিকেটের মধ্যে রয়েছে:

    • নিজে স্বাক্ষর করা সার্টিফিকেট।
    • বিশ্বস্ত নয় এমন সূত্রের স্বাক্ষর করা সার্টিফিকেট।
    • প্রত্যাহার করে নেওয়া সার্টিফিকেট।
    • সার্টিফিকেট যার বিষয় টার্গেট হোস্টনেমের সাথে মেলে না।

ঐচ্ছিক প্রপার্টি

এছাড়াও, আপনার watch অনুরোধের সাথে এইসব ঐচ্ছিক ফিল্ড নির্দিষ্ট করতে পারবেন:

  • একটি token প্রপার্টি যা চ্যানেল টোকেন হিসেবে ব্যবহার করার জন্য একটি ইচ্ছামতো স্ট্রিং ভ্যালু নির্দিষ্ট করে। আপনি বিভিন্ন উদ্দেশ্যে বিজ্ঞপ্তি চ্যানেল টোকেন ব্যবহার করতে পারেন। যেমন, আপনি টোকেন ব্যবহার করে যাচাই করতে পারেন যে প্রতিটি ইনকামিং মেসেজ আপনার অ্যাপ্লিকেশন দ্বারা তৈরি করা চ্যানেলের জন্য কিনা—যাতে বিজ্ঞপ্তিটি স্পুফ করা না হয়—অথবা এই চ্যানেলের উদ্দেশ্যের উপর ভিত্তি করে আপনার অ্যাপ্লিকেশনের মধ্যে সঠিক গন্তব্যে মেসেজটি রুট করতে পারেন। সর্বাধিক দৈর্ঘ্য: ২৫৬টি অক্ষর।

    এই চ্যানেলের জন্য আপনার অ্যাপ্লিকেশন যেসব বিজ্ঞপ্তি মেসেজ পায়, সেগুলির প্রতিটির X-Goog-Channel-Token HTTP হেডারে টোকেনটি অন্তর্ভুক্ত থাকে।

    আপনি বিজ্ঞপ্তি চ্যানেল টোকেন ব্যবহার করলে, আমরা সাজেস্ট করি যে আপনি:

    • URL কোয়েরি প্যারামিটারের মতো এক্সটেনসিবল এনকোডিং ফর্ম্যাট ব্যবহার করুন। উদাহরণ: forwardTo=hr&createdBy=mobile

    • OAuth টোকেনের মতো সংবেদনশীল ডেটা অন্তর্ভুক্ত করবেন না।

  • একটি expiration প্রপার্টি স্ট্রিং Unix টাইমস্ট্যাম্প (মিলিসেকেন্ডে) তারিখ এবং সময়ের জন্য সেট করা হয়েছে যখন আপনি চান যে Google Drive API এই বিজ্ঞপ্তি চ্যানেলের জন্য মেসেজ পাঠানো বন্ধ করুক।

    কোনও চ্যানেলের মেয়াদ শেষ হওয়ার সময় থাকলে, এই চ্যানেলের জন্য আপনার অ্যাপ্লিকেশন যেসব বিজ্ঞপ্তি মেসেজ পায়, সেগুলির প্রতিটিতে X-Goog-Channel-Expiration HTTP হেডারের ভ্যালু (মানুষের-পঠনযোগ্য ফর্ম্যাটে) হিসেবে সেটি অন্তর্ভুক্ত থাকে।

অনুরোধ সম্পর্কে আরও জানতে, API রেফারেন্সে files এবং changes পদ্ধতির জন্য watch পদ্ধতি দেখুন।

উত্তর দেখুন

watch অনুরোধের মাধ্যমে বিজ্ঞপ্তি চ্যানেল তৈরি করা হলে, এটি HTTP 200 OK স্ট্যাটাস কোড রিটার্ন করে।

নিচের উদাহরণে যেমন দেখানো হয়েছে, ওয়াচ রেসপন্সের মেসেজ বডি আপনার তৈরি করা বিজ্ঞপ্তি চ্যানেল সম্পর্কে তথ্য প্রদান করে।

{
  "kind": "api#channel",
  "id": "01234567-89ab-cdef-0123456789ab",
  "resourceId": "o3hgv1538sdjfh",
  "resourceUri": "https://www.googleapis.com/drive/v3/files/o3hgv1538sdjfh",
  "token": "target=myApp-myFilesChannelDest",
  "expiration": 1426325213000
}

রেসপন্স বডিতে চ্যানেলের বিবরণ দেওয়া থাকে, যেমন:

  • kind: এটি API চ্যানেল রিসোর্স হিসেবে শনাক্ত করে।
  • id: এই চ্যানেলের জন্য আপনি যে আইডি উল্লেখ করেছেন।
  • resourceId: দেখা রিসোর্সের আইডি।
  • resourceUri: দেখা রিসোর্সের ভার্সন-নির্দিষ্ট আইডি।
  • token: অনুরোধের প্রধান অংশে টোকেন দেওয়া হয়েছে।
  • expiration: চ্যানেলের মেয়াদ শেষ হওয়ার সময়, মিলিসেকেন্ডে Unix টাইমস্ট্যাম্প হিসেবে।

আপনার অনুরোধের অংশ হিসেবে পাঠানো প্রপার্টি ছাড়াও, ফেরত পাঠানো তথ্যে resourceId এবং resourceUri অন্তর্ভুক্ত থাকে যাতে এই বিজ্ঞপ্তি চ্যানেলে দেখা রিসোর্স শনাক্ত করা যায়।

আপনি ফেরত পাঠানো তথ্য অন্যান্য বিজ্ঞপ্তি চ্যানেল অপারেশনে পাস করতে পারেন, যেমন আপনি যখন বিজ্ঞপ্তি পাওয়া বন্ধ করতে চান।

উত্তরের ব্যাপারে আরও জানতে, API রেফারেন্সে files ও changes পদ্ধতির জন্য watch পদ্ধতি দেখুন।

মেসেজ সিঙ্ক করুন

রিসোর্স দেখার জন্য বিজ্ঞপ্তি চ্যানেল তৈরি করার পরে, Google Drive API একটি sync মেসেজ পাঠিয়ে বিজ্ঞপ্তি শুরু হওয়ার কথা জানায়। এইসব মেসেজের জন্য X-Goog-Resource-State HTTP হেডার ভ্যালু হল sync। নেটওয়ার্কের সময় সংক্রান্ত সমস্যার কারণে, watch পদ্ধতি থেকে উত্তর পাওয়ার আগেই sync মেসেজ পেতে পারেন।

sync বিজ্ঞপ্তি উপেক্ষা করা নিরাপদ, তবে আপনি এটি ব্যবহারও করতে পারেন। যেমন, আপনি যদি চ্যানেলটি আর রাখতে না চান, তাহলে X-Goog-Channel-ID এবং X-Goog-Resource-ID ভ্যালু ব্যবহার করে বিজ্ঞপ্তি পাওয়া বন্ধ করতে কল করতে পারেন। এছাড়াও, আপনি sync বিজ্ঞপ্তি ব্যবহার করে পরবর্তী ইভেন্টের জন্য প্রস্তুতি নিতে কিছু ইনিশিয়ালাইজেশন করতে পারেন।

Google Drive API আপনার রিসিভিং URL-এ যে sync মেসেজ পাঠায়, তার ফর্ম্যাট নিচে দেখানো হল।

POST https://mydomain.com/notifications // Your receiving URL.
X-Goog-Channel-ID: channel-ID-value
X-Goog-Channel-Token: channel-token-value
X-Goog-Channel-Expiration: expiration-date-and-time // In human-readable format. Present only if the channel expires.
X-Goog-Resource-ID: identifier-for-the-watched-resource
X-Goog-Resource-URI: version-specific-URI-of-the-watched-resource
X-Goog-Resource-State: sync
X-Goog-Message-Number: 1

সিঙ্ক মেসেজে সবসময় X-Goog-Message-Number HTTP হেডার ভ্যালু 1 থাকে। এই চ্যানেলের জন্য পরবর্তী প্রতিটি বিজ্ঞপ্তিতে একটি মেসেজ নম্বর থাকে যা আগেরটির চেয়ে বড়, যদিও মেসেজ নম্বরগুলি ক্রমানুসারে থাকবে না।

বিজ্ঞপ্তির চ্যানেল রিনিউ করুন

বিজ্ঞপ্তি চ্যানেলের মেয়াদ শেষ হওয়ার সময় থাকতে পারে, যার ভ্যালু আপনার অনুরোধ অথবা যেকোনও Google Drive API-এর ইন্টার্নাল সীমা বা ডিফল্ট (আরও বেশি সীমাবদ্ধ ভ্যালু ব্যবহার করা হয়) দ্বারা নির্ধারিত হয়। চ্যানেলের মেয়াদ শেষ হওয়ার সময়, যদি থাকে, watch পদ্ধতি দ্বারা ফেরত দেওয়া তথ্যে ইউনিক্স টাইমস্ট্যাম্প (মিলিসেকেন্ডে) হিসেবে অন্তর্ভুক্ত করা হয়। এছাড়াও, মেয়াদ শেষ হওয়ার তারিখ ও সময় (মানুষের-পঠনযোগ্য ফর্ম্যাটে) এই চ্যানেলের জন্য আপনার অ্যাপ্লিকেশনের পাওয়া প্রতিটি বিজ্ঞপ্তি মেসেজে X-Goog-Channel-Expiration HTTP হেডারে অন্তর্ভুক্ত থাকে।

বর্তমানে, কোনও বিজ্ঞপ্তি চ্যানেল রিনিউ করার কোনও অটোমেটিক উপায় নেই। যখন কোনও চ্যানেল মেয়াদ শেষ হওয়ার কাছাকাছি পৌঁছে যায়, তখন আপনাকে watch পদ্ধতি কল করে নতুন চ্যানেল দিয়ে সেটি পরিবর্তন করতে হবে। প্রতিবারের মতো, নতুন চ্যানেলের id প্রপার্টির জন্য আপনাকে অবশ্যই একটি অনন্য ভ্যালু ব্যবহার করতে হবে। মনে রাখবেন যে, একই রিসোর্সের জন্য দুটি বিজ্ঞপ্তি চ্যানেল অ্যাক্টিভ থাকলে, সময়ের "ওভারল্যাপ" হওয়ার সম্ভাবনা থাকে।

বিজ্ঞপ্তি প্রাপ্ত করুন

যখনই কোনও দেখা রিসোর্স পরিবর্তিত হয়, আপনার অ্যাপ্লিকেশনটি পরিবর্তনের বর্ণনা দিয়ে একটি বিজ্ঞপ্তি বার্তা পায়। Google Drive API এই বিজ্ঞপ্তি চ্যানেলের জন্য আপনার উল্লেখ করা URL-এ HTTPS POST অনুরোধ হিসেবে এইসব মেসেজ পাঠায়, যা address প্রপার্টি হিসেবে উল্লেখ করা হয়েছে।

বিজ্ঞপ্তি মেসেজের ফর্ম্যাট ব্যাখ্যা করুন

সব বিজ্ঞপ্তি মেসেজে HTTP হেডারের একটি সেট থাকে যাতে X-Goog- প্রিফিক্স থাকে। কিছু ধরনের বিজ্ঞপ্তিতে মেসেজের বিষয়বস্তুও থাকতে পারে।

হেডার

Google Drive API-এর মাধ্যমে আপনার রিসিভিং URL-এ পোস্ট করা বিজ্ঞপ্তি মেসেজে নিম্নলিখিত HTTP হেডার অন্তর্ভুক্ত থাকে:

শিরোনাম বিবরণ
সবসময় উপস্থিত
X-Goog-Channel-ID এই বিজ্ঞপ্তি চ্যানেল শনাক্ত করার জন্য আপনার দেওয়া UUID বা অন্য অনন্য স্ট্রিং।
X-Goog-Message-Number এই বিজ্ঞপ্তি চ্যানেলের জন্য এই মেসেজ শনাক্ত করে এমন পূর্ণসংখ্যা। sync মেসেজের জন্য ভ্যালু সবসময় 1 হয়। চ্যানেলে পরবর্তী প্রতিটি মেসেজের জন্য মেসেজের সংখ্যা বৃদ্ধি পায়, তবে সেগুলি ক্রমিক নয়।
X-Goog-Resource-ID একটি অস্বচ্ছ মান যা দেখা রিসোর্সকে শনাক্ত করে। এই আইডি API ভার্সন জুড়ে একই থাকে।
X-Goog-Resource-State নতুন রিসোর্স স্ট্যাটাস যা বিজ্ঞপ্তি ট্রিগার করেছে। সম্ভাব্য ভ্যালু: sync, add, remove, update, trash, untrash, অথবা change .
X-Goog-Resource-URI দেখা রিসোর্সের জন্য API-ভার্সন-নির্দিষ্ট শনাক্তকারী।
মাঝে মাঝে থাকে
X-Goog-Changed পরিবর্তন সম্পর্কে অতিরিক্ত বিবরণ। সম্ভাব্য ভ্যালু: content, parents, children, অথবা permissions . sync মেসেজের সাথে প্রদান করা হয়নি।
X-Goog-Channel-Expiration বিজ্ঞপ্তি চ্যানেলের মেয়াদ শেষ হওয়ার তারিখ ও সময়, যা মানুষের-পঠনযোগ্য ফর্ম্যাটে প্রকাশ করা হয়। শুধুমাত্র নির্দিষ্ট করা থাকলে তবেই দেখান।
X-Goog-Channel-Token বিজ্ঞপ্তি চ্যানেল টোকেন যা আপনার অ্যাপ্লিকেশন দ্বারা সেট করা হয়েছে এবং যা আপনি বিজ্ঞপ্তির সোর্স যাচাই করতে ব্যবহার করতে পারেন। শুধুমাত্র তখনই দেখান যদি সংজ্ঞায়িত করা থাকে।

files রিসোর্স (যার মধ্যে add, remove, update, trash এবং untrash ইভেন্ট অন্তর্ভুক্ত) এবং changes রিসোর্স, দুটির জন্যই বিজ্ঞপ্তি মেসেজ সবসময় খালি থাকে (HTTP অনুরোধের বডি খালি থাকে, অর্থাৎ, Content-Length: 0)।

উদাহরণ

files রিসোর্সের জন্য বিজ্ঞপ্তি মেসেজ যখন কোনও রিসোর্স যোগ করা হয় (অনুরোধের বডি খালি থাকে):

POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 0
X-Goog-Channel-ID: 4ba78bf0-6a47-11e2-bcfd-0800200c9a66
X-Goog-Channel-Token: 3a98f1a2b3c4d5e6f7
X-Goog-Channel-Expiration: Tue, 19 Nov 2013 01:13:52 GMT
X-Goog-Resource-ID: ret08u3rv24htgh289g
X-Goog-Resource-URI: https://www.googleapis.com/drive/v3/files/ret08u3rv24htgh289g
X-Goog-Resource-State: add
X-Goog-Message-Number: 10

কোনও রিসোর্স আপডেট করা হলে (অনুরোধের বডি খালি থাকে) files রিসোর্সের জন্য বিজ্ঞপ্তি মেসেজ পরিবর্তন করুন:

POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 0
X-Goog-Channel-ID: 4ba78bf0-6a47-11e2-bcfd-0800200c9a66
X-Goog-Channel-Token: 3a98f1a2b3c4d5e6f7
X-Goog-Channel-Expiration: Tue, 19 Nov 2013 01:13:52 GMT
X-Goog-Resource-ID: ret08u3rv24htgh289g
X-Goog-Resource-URI: https://www.googleapis.com/drive/v3/files/ret08u3rv24htgh289g
X-Goog-Resource-State: update
X-Goog-Changed: content,properties
X-Goog-Message-Number: 11

changes রিসোর্সের জন্য বিজ্ঞপ্তি মেসেজ পরিবর্তন করুন (অনুরোধের বডি খালি):

POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 0
X-Goog-Channel-ID: 8bd90be9-3a58-3122-ab43-9823188a5b43
X-Goog-Channel-Token: 245t1234tt83trrt333
X-Goog-Channel-Expiration: Tue, 19 Nov 2013 01:13:52 GMT
X-Goog-Resource-ID: ret987df98743md8g
X-Goog-Resource-URI: https://www.googleapis.com/drive/v3/changes
X-Goog-Resource-State: changed
X-Goog-Message-Number: 23

বিজ্ঞপ্তির উত্তর দিন

প্রসেসটি সফল হয়েছে কিনা তা জানাতে, আপনি নিম্নলিখিত স্ট্যাটাস কোডগুলির মধ্যে যেকোনও একটি পাঠাতে পারেন: 200, 201, 202, 204, অথবা 102.

আপনার পরিষেবা Google-এর API ক্লায়েন্ট লাইব্রেরি ব্যবহার করলে এবং 500,502, 503 বা 504 রিটার্ন করলে, Google Drive API এক্সপোনেনশিয়াল ব্যাকঅফ সহ আবার চেষ্টা করে। অন্য যেকোনও রিটার্ন স্ট্যাটাস কোডকে মেসেজ পাঠানোর ক্ষেত্রে ব্যর্থতা হিসেবে বিবেচনা করা হয়।

Google Drive API বিজ্ঞপ্তি ইভেন্ট সম্পর্কে বোঝা

Google Drive API-এর সাথে পুশ বিজ্ঞপ্তি ব্যবহার করার সময় আপনি যেসব বিজ্ঞপ্তি মেসেজ পেতে পারেন, এই বিভাগে সেই সম্পর্কে বিস্তারিত তথ্য দেওয়া হয়েছে।

X-Goog-Resource-State এতে প্রযোজ্য কখন ডেলিভার করা হয়েছে
sync files, changes চ্যানেল তৈরি করা হয়েছে। আপনি এটির জন্য বিজ্ঞপ্তি পেতে শুরু করবেন বলে আশা করতে পারেন।
add files একটি রিসোর্স তৈরি বা শেয়ার করা হয়েছে।
remove files আগে থেকে থাকা রিসোর্স মুছে দেওয়া হয়েছে বা শেয়ার করা থেকে সরিয়ে নেওয়া হয়েছে।
update files রিসোর্সের এক বা একাধিক প্রপার্টি (মেটাডেটা) আপডেট করা হয়েছে।
trash files একটি রিসোর্স ট্র্যাশে সরানো হয়েছে।
untrash files ট্র্যাশ থেকে একটি রিসোর্স সরিয়ে দেওয়া হয়েছে।
change changes এক বা একাধিক চেঞ্জলগ আইটেম যোগ করা হয়েছে।

update ইভেন্টের জন্য, X-Goog-Changed HTTP হেডার প্রদান করা হতে পারে। সেই হেডারে কমা দিয়ে আলাদা করা তালিকা থাকে যা কী ধরনের পরিবর্তন হয়েছে তা বর্ণনা করে।

পরিবর্তনের ধরন ইঙ্গিত করে
content রিসোর্স কন্টেন্ট আপডেট করা হয়েছে।
properties এক বা একাধিক রিসোর্স প্রপার্টি আপডেট করা হয়েছে।
parents এক বা একাধিক রিসোর্স পেরেন্ট যোগ করা বা সরানো হয়েছে।
children এক বা একাধিক রিসোর্স চাইল্ড যোগ করা বা সরানো হয়েছে।
permissions রিসোর্স সংক্রান্ত অনুমতি আপডেট করা হয়েছে।

X-Goog-Changed হেডার সহ উদাহরণ:

X-Goog-Resource-State: update
X-Goog-Changed: content, permissions

বিজ্ঞপ্তি বন্ধ করুন

expiration প্রপার্টি নিয়ন্ত্রণ করে যে কখন বিজ্ঞপ্তি অটোমেটিক বন্ধ হয়ে যাবে। আপনি কোনও নির্দিষ্ট চ্যানেলের মেয়াদ শেষ হওয়ার আগে সেটির বিজ্ঞপ্তি পাওয়া বন্ধ করতে চাইলে, নিম্নলিখিত URI-তে stop মেথড কল করতে পারেন:

https://www.googleapis.com/drive/v3/channels/stop

এই পদ্ধতিতে আপনাকে অন্তত চ্যানেলের id এবং resourceId প্রপার্টি প্রদান করতে হবে, যেমনটি নিচের উদাহরণে দেখানো হয়েছে। মনে রাখবেন, Google Drive API-তে যদি বিভিন্ন ধরনের রিসোর্স থাকে যেগুলিতে watch পদ্ধতি আছে, তাহলে সেখানে শুধুমাত্র একটি stop পদ্ধতি আছে।

শুধুমাত্র সঠিক অনুমতি থাকা ব্যবহারকারীরাই কোনও চ্যানেল বন্ধ করতে পারবেন। বিশেষ করে এতে:

  • চ্যানেলটি কোনও সাধারণ ব্যবহারকারীর অ্যাকাউন্ট থেকে তৈরি করা হলে, একই ক্লায়েন্ট থেকে একই ব্যবহারকারী (OAuth 2.0 ক্লায়েন্ট আইডি থেকে পাওয়া অথ টোকেন থেকে শনাক্ত করা) যিনি চ্যানেলটি তৈরি করেছেন, শুধু তিনিই চ্যানেলটি বন্ধ করতে পারবেন।
  • কোনও পরিষেবা অ্যাকাউন্ট থেকে চ্যানেল তৈরি করা হলে, একই ক্লায়েন্টের যেকোনও ব্যবহারকারী চ্যানেল বন্ধ করতে পারবেন।

নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন যে কীভাবে বিজ্ঞপ্তি পাওয়া বন্ধ করতে হয়:

POST https://www.googleapis.com/drive/v3/channels/stop
  
Authorization: Bearer CURRENT_USER_AUTH_TOKEN
Content-Type: application/json

{
  "id": "4ba78bf0-6a47-11e2-bcfd-0800200c9a66",
  "resourceId": "ret08u3rv24htgh289g"
}