এই ডকুমেন্টে বর্ণনা করা হয়েছে কীভাবে পুশ নোটিফিকেশন ব্যবহার করে কোনো রিসোর্স পরিবর্তিত হলে আপনার অ্যাপ্লিকেশনকে জানানো যায়।
সংক্ষিপ্ত বিবরণ
গুগল ড্রাইভ এপিআই পুশ নোটিফিকেশন প্রদান করে, যার মাধ্যমে আপনি রিসোর্সের পরিবর্তন পর্যবেক্ষণ করতে পারেন। আপনার অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে আপনি এই ফিচারটি ব্যবহার করতে পারেন। এটি রিসোর্স পরিবর্তিত হয়েছে কিনা তা জানার জন্য পোলিং-এর সাথে জড়িত অতিরিক্ত নেটওয়ার্ক এবং কম্পিউট খরচ দূর করতে সাহায্য করে। যখনই পর্যবেক্ষণাধীন কোনো রিসোর্স পরিবর্তিত হয়, গুগল ড্রাইভ এপিআই আপনার অ্যাপ্লিকেশনকে অবহিত করে।
পুশ নোটিফিকেশন ব্যবহার করতে হলে আপনাকে দুটি কাজ করতে হবে:
আপনার গ্রহণকারী ইউআরএল অথবা 'ওয়েবহুক' কলব্যাক রিসিভার সেট আপ করুন।
এটি একটি HTTPS সার্ভার যা কোনো রিসোর্স পরিবর্তিত হলে ট্রিগার হওয়া API নোটিফিকেশন মেসেজগুলো পরিচালনা করে।
আপনি যে প্রতিটি রিসোর্স এন্ডপয়েন্ট পর্যবেক্ষণ করতে চান, তার জন্য একটি ( নোটিফিকেশন চ্যানেল ) সেট আপ করুন।
একটি চ্যানেল নোটিফিকেশন মেসেজের জন্য রাউটিং তথ্য নির্দিষ্ট করে। চ্যানেল সেটআপের অংশ হিসেবে, আপনাকে অবশ্যই সেই নির্দিষ্ট URL-টি চিহ্নিত করতে হবে যেখানে আপনি নোটিফিকেশন পেতে চান। যখনই কোনো চ্যানেলের রিসোর্স পরিবর্তিত হয়, গুগল ড্রাইভ এপিআই সেই URL-টিতে একটি
POSTরিকোয়েস্ট হিসেবে নোটিফিকেশন মেসেজ পাঠায়।
বর্তমানে, গুগল ড্রাইভ এপিআই files এবং changes পদ্ধতির পরিবর্তনের জন্য নোটিফিকেশন সমর্থন করে।
বিজ্ঞপ্তি চ্যানেল তৈরি করুন
পুশ নোটিফিকেশনের অনুরোধ করতে, আপনি যে প্রতিটি রিসোর্স নিরীক্ষণ করতে চান তার জন্য আপনাকে একটি নোটিফিকেশন চ্যানেল সেট আপ করতে হবে। আপনার নোটিফিকেশন চ্যানেলগুলি সেট আপ করা হয়ে গেলে, নিরীক্ষণাধীন কোনো রিসোর্স পরিবর্তিত হলে Google Drive API আপনার অ্যাপ্লিকেশনকে জানিয়ে দেয়।
ঘড়ির অনুরোধ করুন
প্রতিটি পর্যবেক্ষণযোগ্য গুগল ড্রাইভ এপিআই রিসোর্সের সাথে নিম্নলিখিত ফর্ম্যাটের একটি URI-তে একটি watch মেথড যুক্ত থাকে:
https://www.googleapis.com/API_NAME/API_VERSION/RESOURCE_PATH/watch
কোনো নির্দিষ্ট রিসোর্সের পরিবর্তন সংক্রান্ত বার্তার জন্য একটি নোটিফিকেশন চ্যানেল সেট আপ করতে, রিসোর্সটির watch মেথডে একটি POST রিকোয়েস্ট পাঠান।
প্রতিটি নোটিফিকেশন চ্যানেল একজন নির্দিষ্ট ব্যবহারকারী এবং একটি নির্দিষ্ট রিসোর্স (বা রিসোর্সসমূহের সেট)-এর সাথে যুক্ত থাকে। বর্তমান ব্যবহারকারী বা সার্ভিস অ্যাকাউন্টটি এই রিসোর্সটির মালিক না হলে বা এটি অ্যাক্সেস করার অনুমতি না থাকলে, একটি watch রিকোয়েস্ট সফল হবে না।
উদাহরণ
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে files.watch পদ্ধতি ব্যবহার করে একটি channels রিসোর্স থেকে একটি একক files রিসোর্সের পরিবর্তন পর্যবেক্ষণ করা শুরু করা যায়:
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 , এবং address অংশে আপনার রিসিভিং ইউআরএল প্রদান করুন। এছাড়াও আপনি ঐচ্ছিকভাবে নিম্নলিখিতগুলি প্রদান করতে পারেন:
- আপনার চ্যানেল টোকেন হিসেবে ব্যবহার করার জন্য একটি
token। - আপনার অনুরোধ করা চ্যানেলের মেয়াদ
expirationহওয়ার সময় মিলিসেকেন্ডে।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে changes.watch পদ্ধতি ব্যবহার করে একটি channels রিসোর্সের সমস্ত changes পর্যবেক্ষণ করা শুরু করতে হয়:
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 , এবং address অংশে আপনার রিসিভিং ইউআরএল প্রদান করুন। এছাড়াও আপনি ঐচ্ছিকভাবে নিম্নলিখিতগুলি প্রদান করতে পারেন:
- আপনার চ্যানেল টোকেন হিসেবে ব্যবহার করার জন্য একটি
token। - আপনার অনুরোধ করা চ্যানেলের মেয়াদ
expirationহওয়ার সময় মিলিসেকেন্ডে।
প্রয়োজনীয় সম্পত্তি
প্রতিটি watch রিকোয়েস্টের সাথে আপনাকে অবশ্যই এই ফিল্ডগুলো প্রদান করতে হবে:
একটি
idপ্রপার্টি স্ট্রিং যা আপনার প্রোজেক্টের মধ্যে এই নতুন নোটিফিকেশন চ্যানেলটিকে অনন্যভাবে শনাক্ত করে। আমরা একটি সার্বজনীনভাবে অনন্য শনাক্তকারী ( UUID ) বা এই জাতীয় কোনো অনন্য স্ট্রিং ব্যবহার করার পরামর্শ দিই। সর্বোচ্চ দৈর্ঘ্য: ৬৪ অক্ষর।আপনার সেট করা আইডি মানটি এই চ্যানেলের জন্য প্রাপ্ত প্রতিটি নোটিফিকেশন বার্তার
X-Goog-Channel-IdHTTP হেডারে প্রতিফলিত হয়।একটি
typeপ্রপার্টি স্ট্রিং যার মানweb_hookএ সেট করা হয়েছে।এই নোটিফিকেশন চ্যানেলের জন্য নোটিফিকেশন শোনা ও সেগুলোর উত্তর দেওয়ার URL-এ সেট করা একটি
addressপ্রপার্টি স্ট্রিং। এটি আপনার ওয়েবহুক কলব্যাক URL, এবং এতে অবশ্যই HTTPS ব্যবহার করতে হবে।মনে রাখবেন যে, আপনার ওয়েব সার্ভারে একটি বৈধ SSL সার্টিফিকেট ইনস্টল করা থাকলেই গুগল ড্রাইভ এপিআই এই HTTPS ঠিকানায় নোটিফিকেশন পাঠাতে পারবে। অবৈধ সার্টিফিকেটগুলোর মধ্যে রয়েছে:
- স্ব-স্বাক্ষরিত সনদপত্র।
- অবিশ্বস্ত উৎস দ্বারা স্বাক্ষরিত সনদপত্র।
- যে সনদপত্রগুলো বাতিল করা হয়েছে।
- যেসব সার্টিফিকেটের সাবজেক্ট টার্গেট হোস্টনেমের সাথে মেলে না।
ঐচ্ছিক বৈশিষ্ট্য
আপনি আপনার watch রিকোয়েস্টের সাথে এই ঐচ্ছিক ফিল্ডগুলোও নির্দিষ্ট করতে পারেন:
একটি
tokenপ্রপার্টি যা চ্যানেল টোকেন হিসেবে ব্যবহারের জন্য একটি যথেচ্ছ স্ট্রিং ভ্যালু নির্দিষ্ট করে। আপনি বিভিন্ন উদ্দেশ্যে নোটিফিকেশন চ্যানেল টোকেন ব্যবহার করতে পারেন। উদাহরণস্বরূপ, প্রতিটি আগত বার্তা আপনার অ্যাপ্লিকেশন দ্বারা তৈরি করা একটি চ্যানেলের জন্য কিনা তা যাচাই করতে—নোটিফিকেশনটি স্পুফিং হচ্ছে না তা নিশ্চিত করতে—অথবা এই চ্যানেলের উদ্দেশ্যের উপর ভিত্তি করে বার্তাটিকে আপনার অ্যাপ্লিকেশনের মধ্যে সঠিক গন্তব্যে পাঠাতে আপনি টোকেনটি ব্যবহার করতে পারেন। সর্বোচ্চ দৈর্ঘ্য: ২৫৬ অক্ষর।এই চ্যানেলের জন্য আপনার অ্যাপ্লিকেশন যে প্রতিটি নোটিফিকেশন মেসেজ পায়, তার
X-Goog-Channel-TokenHTTP হেডারে টোকেনটি অন্তর্ভুক্ত থাকে।আপনি যদি নোটিফিকেশন চ্যানেল টোকেন ব্যবহার করেন, তাহলে আমরা আপনাকে নিম্নলিখিত পরামর্শ দিই:
একটি সম্প্রসারণযোগ্য এনকোডিং ফরম্যাট ব্যবহার করুন, যেমন ইউআরএল কোয়েরি প্যারামিটার। উদাহরণ:
forwardTo=hr&createdBy=mobileOAuth টোকেনের মতো সংবেদনশীল তথ্য অন্তর্ভুক্ত করবেন না।
একটি
expirationপ্রপার্টি স্ট্রিং, যা একটি ইউনিক্স টাইমস্ট্যাম্পে (মিলিসেকেন্ডে) সেট করা হয়। এই টাইমস্ট্যাম্পটি সেই তারিখ ও সময়কে নির্দেশ করে, যখন আপনি চান যে গুগল ড্রাইভ এপিআই এই নোটিফিকেশন চ্যানেলের জন্য বার্তা পাঠানো বন্ধ করুক।যদি কোনো চ্যানেলের মেয়াদ শেষ হওয়ার সময় থাকে, তাহলে আপনার অ্যাপ্লিকেশন সেই চ্যানেলের জন্য যে প্রতিটি নোটিফিকেশন মেসেজ পায়, তাতে
X-Goog-Channel-ExpirationHTTP হেডারের ভ্যালু হিসেবে (সহজবোধ্য ফরম্যাটে) তা অন্তর্ভুক্ত করা হয়।
অনুরোধটি সম্পর্কে আরও বিস্তারিত জানতে, এপিআই রেফারেন্সে থাকা 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: চ্যানেলটির মেয়াদ শেষ হওয়ার সময়, যা মিলিসেকেন্ডে একটি ইউনিক্স টাইমস্ট্যাম্প হিসেবে প্রকাশ করা হয়।
আপনার অনুরোধের অংশ হিসেবে পাঠানো প্রোপার্টিগুলো ছাড়াও, ফেরত আসা তথ্যে resourceId এবং resourceUri ও অন্তর্ভুক্ত থাকে, যা এই নোটিফিকেশন চ্যানেলে পর্যবেক্ষণাধীন রিসোর্সটিকে শনাক্ত করতে সাহায্য করে।
আপনি ফেরত আসা তথ্য অন্যান্য নোটিফিকেশন চ্যানেল অপারেশনে পাঠাতে পারেন, যেমন যখন আপনি নোটিফিকেশন পাওয়া বন্ধ করতে চান।
প্রতিক্রিয়া সম্পর্কে আরও বিশদ তথ্যের জন্য, এপিআই রেফারেন্সে থাকা files এবং changes মেথডগুলোর watch মেথডটি দেখুন।
সিঙ্ক বার্তা
কোনো রিসোর্স পর্যবেক্ষণ করার জন্য একটি নোটিফিকেশন চ্যানেল তৈরি করার পর, গুগল ড্রাইভ এপিআই একটি sync মেসেজ পাঠায় যা নির্দেশ করে যে নোটিফিকেশন শুরু হচ্ছে। এই মেসেজগুলোর জন্য X-Goog-Resource-State HTTP হেডারের ভ্যালু হলো sync । নেটওয়ার্ক টাইমিং সমস্যার কারণে, watch মেথডের রেসপন্স পাওয়ার আগেও sync মেসেজটি পাওয়া সম্ভব।
sync নোটিফিকেশনটি উপেক্ষা করা নিরাপদ, তবে আপনি এটি ব্যবহারও করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চ্যানেলটি রাখতে না চান, তাহলে নোটিফিকেশন পাওয়া বন্ধ করার জন্য একটি কলে X-Goog-Channel-ID এবং X-Goog-Resource-ID ভ্যালুগুলো ব্যবহার করতে পারেন। এছাড়াও, পরবর্তী ইভেন্টগুলোর জন্য প্রস্তুতি হিসেবে কিছু ইনিশিয়ালাইজেশন করতেও আপনি sync নোটিফিকেশনটি ব্যবহার করতে পারেন।
গুগল ড্রাইভ এপিআই আপনার গ্রহণকারী ইউআরএল-এ যে 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 থাকে। এই চ্যানেলের প্রতিটি পরবর্তী নোটিফিকেশনের একটি মেসেজ নম্বর থাকে যা আগেরটির চেয়ে বড়, যদিও মেসেজ নম্বরগুলো ক্রমানুসারে হবে না।
বিজ্ঞপ্তি চ্যানেলগুলি পুনর্নবীকরণ করুন
একটি নোটিফিকেশন চ্যানেলের একটি মেয়াদ শেষ হওয়ার সময় থাকতে পারে, যার মান আপনার অনুরোধ অথবা গুগল ড্রাইভ এপিআই-এর অভ্যন্তরীণ সীমা বা ডিফল্ট দ্বারা নির্ধারিত হয় (যেটি বেশি কঠোর, সেই মানটিই ব্যবহৃত হয়)। চ্যানেলের মেয়াদ শেষ হওয়ার সময়, যদি থাকে, তবে তা watch মেথড দ্বারা ফেরত দেওয়া তথ্যে একটি ইউনিক্স টাইমস্ট্যাম্প (মিলিসেকেন্ডে) হিসেবে অন্তর্ভুক্ত থাকে। এছাড়াও, এই চ্যানেলের জন্য আপনার অ্যাপ্লিকেশন যে প্রতিটি নোটিফিকেশন মেসেজ পায়, তার X-Goog-Channel-Expiration HTTP হেডারে মেয়াদ শেষ হওয়ার তারিখ এবং সময় (সহজবোধ্য বিন্যাসে) অন্তর্ভুক্ত থাকে।
বর্তমানে, একটি নোটিফিকেশন চ্যানেল নবায়ন করার কোনো স্বয়ংক্রিয় উপায় নেই। যখন কোনো চ্যানেলের মেয়াদ শেষ হওয়ার কাছাকাছি চলে আসে, তখন আপনাকে অবশ্যই watch মেথডটি কল করে সেটিকে একটি নতুন চ্যানেল দিয়ে প্রতিস্থাপন করতে হবে। বরাবরের মতোই, নতুন চ্যানেলের id প্রপার্টির জন্য আপনাকে অবশ্যই একটি অনন্য মান ব্যবহার করতে হবে। মনে রাখবেন যে, একই রিসোর্সের জন্য দুটি নোটিফিকেশন চ্যানেল সক্রিয় থাকার মধ্যে একটি "ওভারল্যাপ" সময়কাল থাকার সম্ভাবনা রয়েছে।
বিজ্ঞপ্তি গ্রহণ করুন
যখনই পর্যবেক্ষণাধীন কোনো রিসোর্স পরিবর্তিত হয়, আপনার অ্যাপ্লিকেশনটি সেই পরিবর্তন বর্ণনা করে একটি নোটিফিকেশন বার্তা পায়। গুগল ড্রাইভ এপিআই এই বার্তাগুলো HTTPS POST অনুরোধ হিসেবে সেই ইউআরএল-এ পাঠায়, যা আপনি এই নোটিফিকেশন চ্যানেলের জন্য address প্রপার্টি হিসেবে নির্দিষ্ট করেছেন।
বিজ্ঞপ্তি বার্তার বিন্যাস ব্যাখ্যা করুন
সমস্ত নোটিফিকেশন মেসেজে X-Goog- প্রিফিক্সযুক্ত এক সেট HTTP হেডার অন্তর্ভুক্ত থাকে। কিছু ধরণের নোটিফিকেশনে একটি মেসেজ বডিও থাকতে পারে।
হেডার
গুগল ড্রাইভ এপিআই দ্বারা আপনার গ্রহণকারী ইউআরএল-এ পোস্ট করা নোটিফিকেশন মেসেজগুলিতে নিম্নলিখিত HTTP হেডারগুলি অন্তর্ভুক্ত থাকে:
| হেডার | বর্ণনা |
|---|---|
| সর্বদা উপস্থিত | |
| এই নোটিফিকেশন চ্যানেলটি শনাক্ত করার জন্য আপনার দেওয়া UUID বা অন্য কোনো অনন্য স্ট্রিং। |
| এই নোটিফিকেশন চ্যানেলের জন্য এই মেসেজটিকে শনাক্তকারী পূর্ণসংখ্যা। sync মেসেজের ক্ষেত্রে এর মান সর্বদা 1 হয়। চ্যানেলের প্রতিটি পরবর্তী মেসেজের জন্য মেসেজ নম্বর বৃদ্ধি পায়, কিন্তু সেগুলো ক্রমানুসারে সাজানো থাকে না। |
| পর্যবেক্ষণাধীন রিসোর্সকে শনাক্তকারী একটি অস্বচ্ছ মান। এই আইডিটি সকল এপিআই সংস্করণে অপরিবর্তিত থাকে। |
| রিসোর্সের নতুন অবস্থা যা নোটিফিকেশনটি চালু করেছে। সম্ভাব্য মানগুলো হলো: sync , add , remove , update , trash , untrash , অথবা change । |
| পর্যবেক্ষণাধীন রিসোর্সটির জন্য একটি এপিআই-সংস্করণ-নির্দিষ্ট শনাক্তকারী। |
| মাঝে মাঝে উপস্থিত | |
| পরিবর্তনগুলো সম্পর্কে অতিরিক্ত বিবরণ। সম্ভাব্য মানগুলো হলো: content , parents , children , অথবা permissions । sync মেসেজের সাথে এটি প্রদান করা হয় না। |
| নোটিফিকেশন চ্যানেলের মেয়াদ শেষ হওয়ার তারিখ ও সময়, যা সহজে পাঠযোগ্য বিন্যাসে প্রকাশ করতে হবে। শুধুমাত্র সংজ্ঞায়িত করা থাকলেই এটি উপস্থিত থাকবে। |
| আপনার অ্যাপ্লিকেশন দ্বারা সেট করা নোটিফিকেশন চ্যানেল টোকেন, যা আপনি নোটিফিকেশনের উৎস যাচাই করতে ব্যবহার করতে পারেন। শুধুমাত্র সংজ্ঞায়িত থাকলেই এটি উপস্থিত থাকে। |
files এবং changes সংক্রান্ত বিজ্ঞপ্তি বার্তাগুলো খালি রয়েছে।
উদাহরণ
যেসব 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: 398348u3tu83ut8uu38 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: 10
রিসোর্স changes জন্য পরিবর্তন বিজ্ঞপ্তি বার্তা, যার মধ্যে একটি অনুরোধ বডি অন্তর্ভুক্ত থাকে:
POST https://mydomain.com/notifications
Content-Type: application/json; utf-8
Content-Length: 118
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
{
"kind": "drive#changes"
}বিজ্ঞপ্তিগুলিতে সাড়া দিন
সফলতা নির্দেশ করতে, আপনি নিম্নলিখিত স্ট্যাটাস কোডগুলির যেকোনো একটি ফেরত দিতে পারেন: 200 , 201 , 202 , 204 , বা 102 ।
যদি আপনার পরিষেবা গুগলের এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে এবং 500 , 502 , 503 , বা 504 রিটার্ন করে, তাহলে গুগল ড্রাইভ এপিআই এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করে। অন্য সব রিটার্ন স্ট্যাটাস কোডকে মেসেজ ব্যর্থতা হিসেবে গণ্য করা হয়।
গুগল ড্রাইভ এপিআই নোটিফিকেশন ইভেন্টগুলো বুঝুন
এই বিভাগে গুগল ড্রাইভ এপিআই-এর সাথে পুশ নোটিফিকেশন ব্যবহার করার সময় আপনি যে নোটিফিকেশন বার্তাগুলি পেতে পারেন, সে সম্পর্কে বিস্তারিত তথ্য দেওয়া হয়েছে।
| | | কখন ডেলিভারি করা হবে |
|---|---|---|
sync | files , changes | একটি চ্যানেল সফলভাবে তৈরি করা হয়েছে। আপনি শীঘ্রই এর জন্য নোটিফিকেশন পেতে শুরু করবেন। |
add | files | একটি রিসোর্স তৈরি বা শেয়ার করা হয়েছে। |
| files | বিদ্যমান কোনো রিসোর্স মুছে ফেলা হয়েছে বা আনশেয়ার করা হয়েছে। |
| files | কোনো রিসোর্সের এক বা একাধিক প্রপার্টি (মেটাডেটা) আপডেট করা হয়েছে। |
| files | একটি রিসোর্স ট্র্যাশে সরানো হয়েছে। |
| files | ট্র্যাশ থেকে একটি রিসোর্স সরানো হয়েছে। |
| 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 প্রপার্টিগুলো প্রদান করতে হবে, যেমনটি নিচের উদাহরণে দেখানো হয়েছে। উল্লেখ্য যে, গুগল ড্রাইভ এপিআই-তে যদি 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"
}