ClientLogin থেকে OAuth 2.0 এ সরান

ইকাই ল্যান, YouTube Developer Relations – June 2013

ইউটিউব API ব্যবহারকারীর অনুরোধ অনুমোদন করতে OAuth 2.0 ব্যবহার করে। আমাদের প্রায়শই জিজ্ঞাসা করা হয় যে আমরা ClientLogin প্রমাণীকরণের জন্য সমর্থন যোগ করব বা YouTube API-এ অনুরূপ কিছু এগিয়ে যাব। যাইহোক, আমরা 20 এপ্রিল, 2012 থেকে আনুষ্ঠানিকভাবে ClientLogin অবমূল্যায়ন করেছি , এবং এই ধরনের ব্যবস্থা যোগ করার কোনো পরিকল্পনা নেই।

এমন অনেক কারণ রয়েছে যে কারণে আমরা বিশ্বাস করি যে OAuth 2.0 অনুমোদনের বিভিন্ন প্রবাহকে সমর্থন করা ClientLogin এর চেয়ে YouTube ব্যবহারকারীদের জন্য ভালো। এই ফ্লোগুলি ডেস্কটপ অ্যাপ্লিকেশন, শুধুমাত্র ওয়েব অ্যাপ্লিকেশন, নেটিভ মোবাইল অ্যাপ্লিকেশন এবং এমনকি অ্যাপ্লিকেশনগুলিকে সমর্থন করে যেগুলি টেলিভিশনের মতো ডিভাইসগুলিতে চালিত হয় যার অত্যাধুনিক ইনপুট প্রক্রিয়া নেই, এমন কিছু যা ClientLogin ব্যবহার করে করা কঠিন৷ এছাড়াও, আমরা দেখেছি যে ClientLogin অনেক ডেভেলপারের জন্য লঞ্চের পরে আরও মাথাব্যথার কারণ হয়, যার মধ্যে কিছু আমরা আমাদের ব্লগ পোস্টে বর্ণনা করি, ClientLogin #FAIL

সার্ভার-সাইড, স্বতন্ত্র স্ক্রিপ্টগুলির জন্য OAuth 2.0 ব্যবহার করা

অনেক ডেভেলপার কমান্ড-লাইন স্ক্রিপ্ট অনুমোদন করতে ClientLogin ব্যবহার করে যেগুলো ব্রাউজার ছাড়াই সার্ভারে চলে। OAuth 2.0 এর সাথে, প্রায় সবসময়ই একটি ব্রাউজার জড়িত থাকে - ব্যতিক্রম যখন আপনি একটি Android অ্যাপ্লিকেশনে কাজ করছেন যা GoogleAuthUtil. মাধ্যমে টোকেন আনতে Google Play Services ব্যবহার করে।

শুধুমাত্র-ওয়েব-প্রবাহে , একটি ওয়েবসাইট যেটি ব্যবহারকারীর পক্ষে প্রমাণীকৃত API কল করতে চায় তাকে অবশ্যই ব্যবহারকারীকে একটি google.com প্রমাণীকরণ পৃষ্ঠাতে পুনঃনির্দেশ করতে হবে যা ব্যাখ্যা করে যে অ্যাপ্লিকেশনটি কী অ্যাক্সেস করার চেষ্টা করছে৷ ওয়েব অ্যাপ্লিকেশনটি তখন একটি টোকেন পায়, যা এটি API কল করতে ব্যবহার করে। ব্যবহারকারী তারপর connected apps and sites পৃষ্ঠা ব্যবহার করে যেকোন সময় অ্যাপ্লিকেশনের অ্যাক্সেস প্রত্যাহার করতে পারেন।

আমাদের পাইথন কোডের নমুনাগুলি দেখায় যে কীভাবে কমান্ড-লাইন স্ক্রিপ্টগুলি একটি ব্রাউজার চালু করতে পারে এবং একটি টার্মিনাল উইন্ডো থেকে API কল করতে পারে, অনুমোদন পুনঃনির্দেশের পরে কোড শোনার জন্য একটি স্থানীয় সার্ভার তৈরি করতে পারে এবং ভবিষ্যতের API কলগুলির জন্য স্বয়ংক্রিয়ভাবে একটি টোকেন সংরক্ষণ করতে পারে৷ এই কর্মের একটি ভিডিও নীচে দেওয়া হল:

ব্যবহৃত টোকেন একটি ASCII স্ট্রিং। যদি এটি একটি offline টোকেন হয় তবে এটি বহনযোগ্য । পুনরুদ্ধার করা টোকেন ব্যবহার করে, আপনি আপনার ডেস্কটপে স্ক্রিপ্টটি চালাতে সক্ষম হবেন, তারপর GUI ছাড়াই একটি দূরবর্তী সার্ভারে কোডটি অনুলিপি করে ব্যবহার করতে পারবেন, তবে সেই কোডটি একই ক্লায়েন্ট আইডি এবং গোপনীয়তার সাথে একটি OAuth 2.0 ক্লায়েন্টকে ইনস্ট্যান্টিয়েট করে। পাইথন ছাড়াও, অন্যান্য প্রোগ্রামিং ভাষার জন্য Google API ক্লায়েন্ট লাইব্রেরিগুলিও টোকেন পরিচালনার জন্য সহায়ক পদ্ধতি প্রদান করে, যা ক্লায়েন্টদের মধ্যে ভাগ করা যায় এবং এমনকি নিম্ন-স্তরের HTTP লাইব্রেরিতে সরাসরি ক্লায়েন্ট হেডারে বা URL প্যারামিটার হিসাবে ব্যবহার করা যেতে পারে।

সার্ভার-সাইড স্ক্রিপ্টের কিছু উদাহরণ যা অফলাইন টোকেন ব্যবহার করে:

  • একটি ডেমন যা YouTube-এ স্বয়ংক্রিয়ভাবে আপলোড করার জন্য নতুন ভিডিওগুলির জন্য একটি ডিরেক্টরি নিরীক্ষণ করে
  • একটি ক্রন কাজ যা প্রতিদিন নতুন বিষয়বস্তুর সাথে প্লেলিস্ট আপডেট করে
  • একটি স্ক্রিপ্ট যা YouTube Analytics API এর মাধ্যমে ভিডিও ডেটা নিরীক্ষণ করে এবং কিছু ইভেন্ট সংঘটিত হলে চ্যানেল পরিচালকদেরকে অবহিত করে, যেমন সামগ্রিক দেখার সময় একটি সীমা অতিক্রম করে। মনে রাখবেন যে এই ক্ষেত্রে, OAuth 2.0 হল একমাত্র সমর্থিত অনুমোদন পদ্ধতি কারণ Analytics API ClientLogin সমর্থন করে না।

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

ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপন সেরা অনুশীলন

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

আপনার স্থানীয় মোবাইল অ্যাপ্লিকেশন কোডের অংশ হিসাবে আপনার ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপনীয়তা অন্তর্ভুক্ত করবেন না। একটি মোবাইল ডিভাইস থেকে OAuth 2.0 প্রমাণীকরণ করা সকল ডেভেলপারদের "ইনস্টল করা অ্যাপ্লিকেশন" ক্লায়েন্ট আইডি ব্যবহার করা উচিত, যা যাচাই করার জন্য অতিরিক্ত তথ্যের জন্য জিজ্ঞাসা করে যে অনুরোধটি শুধুমাত্র আপনার দলের দ্বারা প্রকাশিত একটি অ্যাপ্লিকেশন থেকে আসছে।

অ্যান্ড্রয়েড ডিভাইসে, একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করার পরিবর্তে, প্যাকেজ নাম এবং একটি স্বাক্ষর শংসাপত্র হ্যাশের সংমিশ্রণ ব্যবহার করে আপনার অ্যাপ্লিকেশন সনাক্ত করা হয়৷ iOS ডিভাইসে, বান্ডেল আইডি এবং অ্যাপ স্টোর আইডি ব্যবহার করা হয়। এই তথ্য পুনরুদ্ধারের অফিসিয়াল ডকুমেন্টেশন Google API Console সহায়তা পৃষ্ঠায় পাওয়া যাবে।

পরিষেবা অ্যাকাউন্টগুলি YouTube API এর সাথে কাজ করে না৷

পরিষেবা অ্যাকাউন্টগুলি YouTube ডেটা API কলগুলির জন্য কাজ করে না কারণ পরিষেবা অ্যাকাউন্টগুলির জন্য একটি সংশ্লিষ্ট YouTube চ্যানেলের প্রয়োজন হয় এবং আপনি পরিষেবা অ্যাকাউন্টগুলির সাথে নতুন বা বিদ্যমান চ্যানেলগুলিকে সংযুক্ত করতে পারবেন না৷ আপনি যদি YouTube ডেটা API কল করার জন্য একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করেন, API সার্ভার ত্রুটির ধরনটি unauthorized এবং কারণটি youtubeSignupRequired এ সেট করে একটি ত্রুটি ফেরত দেয়

YouTube API-তে অফলাইন/দীর্ঘদিনের অ্যাক্সেস

OAuth 2.0-এ স্বল্পকালীন টোকেন এবং দীর্ঘস্থায়ী টোকেন রয়েছে৷ এক-অফ অপারেশনের জন্য, স্বল্পকালীন অ্যাক্সেস টোকেন হল সেরা বিকল্প। এই টোকেনগুলি মঞ্জুর করার পরেই মেয়াদ শেষ হয়ে যায়৷ দীর্ঘ সময় ধরে চলমান কাজের জন্য, আপনি একটি রিফ্রেশ টোকেন অর্জনের দিকে নজর দিতে পারেন, যা স্বল্পকালীন অ্যাক্সেস টোকেন আনতে ব্যবহৃত হয়।

আপনার অ্যাপ্লিকেশনটি একটি দীর্ঘস্থায়ী রিফ্রেশ টোকেন পেয়েছে এবং স্বল্পকালীন অ্যাক্সেস টোকেন নয় তা নিশ্চিত করতে, একটি ক্লায়েন্ট আইডি তৈরি করার সময় "ইনস্টল করা অ্যাপ্লিকেশন" ফ্লো ব্যবহার করুন এবং "ইনস্টল করা অ্যাপ্লিকেশন প্রকার" মানটির জন্য Other নির্বাচন করুন:

এই ব্যবহারের ক্ষেত্রে আপনি "ইনস্টল করা অ্যাপ্লিকেশন" ফ্লো ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। আপনার যদি একটি ওয়েব অ্যাপ্লিকেশনে YouTube API-তে দীর্ঘস্থায়ী অ্যাক্সেসের প্রয়োজন হয়, আপনি access_type প্যারামিটারটিকে offline সেট করে এবং প্রাথমিক অনুমোদনের অনুরোধ বা আপনার ক্লায়েন্ট কনফিগারেশনে force জন্য approval_prompt প্যারামিটার সেট করে একটি পুনরুদ্ধার করতে পারেন। কিছু ক্লায়েন্ট লাইব্রেরি আনয়ন এবং রিফ্রেশ অ্যাক্সেস টোকেন পরিচালনা করবে। আপনি যদি আপনার নিজস্ব কাস্টম অনুমোদন কোড লিখতে আগ্রহী হন, আমরা Google কোড ব্লগে একটি ব্লগ পোস্ট প্রকাশ করেছি যা আপনি আপনার কোডের ভিত্তি হিসাবে ব্যবহার করতে পারেন৷

ফোন, ট্যাবলেট এবং অন্যান্য ডিভাইসের সাথে OAuth 2.0 ব্যবহার করা

অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলি লেখার সময়, বিকাশকারীরা অনুমোদনের বিবরণ পরিচালনা করতে Google Play services সুবিধা নিতে পারে৷ Google Play পরিষেবাগুলি YouTube প্ল্যাটফর্মের API সহ সমস্ত Google API-এর জন্য একটি আদর্শ অনুমোদন প্রবাহ অফার করে৷ এই পদ্ধতি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন ব্যবহারকারীদের জন্য ClientLogin ব্যবহার করে একটি কাস্টম প্রমাণীকরণের চেয়ে অনেক উন্নত ব্যবহারকারীর অভিজ্ঞতা প্রদান করবে৷

iOS ডিভাইসে, Google দুটি বিকল্প প্রদান করে:

  • Google+ Platform for iOS , যা Google পণ্যগুলির জন্য সাইন-ইন সংহত করে এবং সামাজিক বৈশিষ্ট্যগুলিকেও সক্ষম করে
  • gtm-oauth2 toolkit , যা একটি অনুমোদন প্রদান করে UIWebView এবং টোকেন পরিচালনা করে

যে ডিভাইসগুলির জন্য "দ্বিতীয় স্ক্রীন" ডিভাইস বা টেলিভিশনের মতো ডিভাইসগুলি ব্যবহার করা সহজ ইনপুট প্রক্রিয়া ছাড়াই, ডিভাইসগুলির জন্য OAuth 2.0 হল পছন্দের পদ্ধতি৷ ডিভাইসগুলির জন্য OAuth 2.0 একটি ব্যবহারকারীর জন্য একটি অনন্য কোড উপস্থাপন করে কাজ করে যখন একটি অনুমোদনের অনুরোধের প্রয়োজন হয়। এই মুহুর্তে, ব্যবহারকারীদেরকে ল্যাপটপ বা ফোনের মতো অন্য ডিভাইসে http://google.com/device এ ব্রাউজ করতে এবং অনন্য কোড লিখতে বলা হয়। অ্যাপ্লিকেশনটি একটি স্ক্রীন উপস্থাপন করে যা দেখতে এইরকম কিছু দেখায়:

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

সারসংক্ষেপ

OAuth 2.0 অনুমোদন ডেভেলপারদের জন্য নমনীয়তা প্রদান করে যাদের YouTube অনুমোদনের প্রয়োজন হয়। ClientLogin এর সাথে পরিচিত ডেভেলপাররা দেখতে পারেন যে OAuth 2.0 ব্যবহার করার জন্য তাদের অ্যাপ্লিকেশনগুলি সেট আপ করতে শুরু করার জন্য একটু বেশি কাজ করতে হবে, কিন্তু একবার পোর্ট করা হলে, OAuth 2.0 অ্যাপ্লিকেশনগুলি শেষ ব্যবহারকারীদের জন্য একাধিক প্ল্যাটফর্মে আরও নমনীয়তা, নিরাপত্তা এবং ব্যবহারযোগ্যতা প্রদান করে।

OAuth 2.0 বা এই নিবন্ধের যেকোন উদাহরণ সম্পর্কে আপনার যদি আরও কোনো প্রশ্ন থাকে, তাহলে অনুগ্রহ করে StackOverflow-এ youtube-api ট্যাগ দিয়ে জিজ্ঞাসা করতে অনুভব করুন।