Google ডেটা প্রোটোকলে প্রমাণীকরণ এবং অনুমোদন

সতর্কতা : এই পৃষ্ঠাটি Google-এর পুরানো API, Google Data APIs সম্পর্কে; এটি শুধুমাত্র Google Data APIs ডিরেক্টরিতে তালিকাভুক্ত APIগুলির সাথে প্রাসঙ্গিক, যার মধ্যে অনেকগুলি নতুন API দিয়ে প্রতিস্থাপিত হয়েছে৷ একটি নির্দিষ্ট নতুন API সম্পর্কে তথ্যের জন্য, নতুন API এর ডকুমেন্টেশন দেখুন। একটি নতুন API-এর সাহায্যে অনুরোধ অনুমোদনের বিষয়ে তথ্যের জন্য, Google অ্যাকাউন্ট প্রমাণীকরণ এবং অনুমোদন দেখুন।

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

প্রমাণীকরণ পরিষেবাগুলি ব্যবহারকারীদের একটি Google অ্যাকাউন্ট ব্যবহার করে আপনার অ্যাপ্লিকেশনে সাইন ইন করার অনুমতি দেয়৷

অনুমোদন পরিষেবাগুলি ব্যবহারকারীদের আপনার অ্যাপ্লিকেশনকে Google অ্যাপ্লিকেশানগুলিতে সঞ্চিত ডেটাতে অ্যাক্সেস প্রদান করতে দেয়৷ Google গোপনীয়তাকে গুরুত্ব সহকারে নেয়, এবং ব্যবহারকারীর ডেটাতে অ্যাক্সেসের প্রয়োজন হয় এমন যেকোন অ্যাপ্লিকেশন ব্যবহারকারীর দ্বারা অনুমোদিত হতে হবে।

প্রমাণীকরণ এবং অনুমোদন পরিষেবাগুলিকে প্রায়ই সমষ্টিগতভাবে প্রমাণীকরণ হিসাবে উল্লেখ করা হয়।

Google API-এর জন্য প্রমাণীকরণ এবং অনুমোদন তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিকে নির্দিষ্ট ধরণের কার্যকলাপের জন্য ব্যবহারকারীর Google অ্যাকাউন্টে সীমিত অ্যাক্সেস পেতে দেয়। এই নথিটি উপলব্ধ প্রমাণীকরণ পদ্ধতির পরিচয় দেয় এবং প্রত্যেকটি আপনার আবেদনের জন্য কী প্রদান করে তা বর্ণনা করে।

  • Google সাইন-ইন আপনার সাইটে সাইন-ইন করার জন্য লোকেদের তাদের Google শংসাপত্রগুলি ব্যবহার করতে দেওয়ার একটি সহজ উপায় প্রদান করে৷ এটি বিভিন্ন ডিভাইস জুড়ে একত্রিত করা সহজ সরঞ্জামগুলির একটি সেট অন্তর্ভুক্ত করে৷
  • OAuth 2.0 হল সমস্ত Google API-এর জন্য একটি অনুমোদন প্রোটোকল। OAuth 2.0 আপনার অ্যাপ্লিকেশনকে সরাসরি ক্রিপ্টোগ্রাফিক স্বাক্ষর করার প্রয়োজন না করে নিরাপত্তার জন্য SSL-এর উপর নির্ভর করে। এই প্রোটোকল আপনার অ্যাপ্লিকেশনকে ব্যবহারকারীর Google অ্যাকাউন্টের সাথে যুক্ত ডেটা অ্যাক্সেসের অনুরোধ করার অনুমতি দেয়৷
  • OAuth 2.0 ( OpenID Connect ) দিয়ে লগইন করলে ব্যবহারকারীদের তাদের Google অ্যাকাউন্টে লগ ইন করার মাধ্যমে প্রমাণীকরণ করে। এটি OpenID- এর একটি প্রতিস্থাপন, এবং OpenID ব্যবহারকারীদের OAuth 2.0-এর সাথে লগইন-এ স্থানান্তরিত করার পরিকল্পনা করা উচিত।

যদি আপনার অ্যাপ্লিকেশনটি একটি গ্যাজেট হয় (iGoogle বা অন্যান্য OpenSocial পাত্রে ব্যবহারের জন্য), তাহলে গ্যাজেটগুলির জন্য প্রমাণীকরণ বিভাগটি দেখুন।

দ্রষ্টব্য : এই নথিটি প্রতিটি প্রমাণীকরণ পদ্ধতির একটি ওভারভিউ প্রদান করার উদ্দেশ্যে করা হয়েছে। প্রতিটি পদ্ধতির বিস্তারিত তথ্যের জন্য, সম্পূর্ণ Google অ্যাকাউন্ট প্রমাণীকরণ API এর ডকুমেন্টেশন দেখুন।

Google অ্যাকাউন্ট এপিআই ব্যবহার করার বিষয়ে আলোচনার জন্য Google অ্যাকাউন্ট এপিআই গ্রুপটিও দেখুন।

OAuth - ওয়েব এবং ইনস্টল করা অ্যাপ্লিকেশনের জন্য অনুমোদন

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

Google একজন ব্যবহারকারীর Google ডেটাতে অনুমোদিত অ্যাক্সেস পাওয়ার জন্য OAuth-এর দুটি সংস্করণ সমর্থন করে: OAuth 1.0 এবং OAuth 2.0, উভয়ই ওয়েব অ্যাপ্লিকেশন এবং ইনস্টল করা অ্যাপ্লিকেশনগুলিতে অ্যাক্সেস অফার করে৷

ওয়েব এবং ইনস্টল করা অ্যাপ্লিকেশনের জন্য OAuth 2.0

ওয়েব অ্যাপ্লিকেশন বা ইনস্টল করা অ্যাপ্লিকেশনগুলি নতুন, সরলীকৃত OAuth 2.0 প্রোটোকল ব্যবহার করে একটি Google অ্যাকাউন্টের সাথে যুক্ত ডেটাতে অ্যাক্সেস অনুমোদন করতে পারে৷ Google-এর সাথে OAuth 2.0 কীভাবে প্রয়োগ করতে হয় তার বিশদ বিবরণ এবং উদাহরণের জন্য, OAuth 2.0-এ আমাদের ডকুমেন্টেশন দেখুন।

ওয়েব অ্যাপ্লিকেশনের জন্য OAuth 1.0

যে ওয়েব অ্যাপ্লিকেশনগুলির একটি Google অ্যাকাউন্ট বা একটি Google Apps অ্যাকাউন্টের সাথে সম্পর্কিত ডেটাতে অনুমোদিত অ্যাক্সেসের প্রয়োজন সেগুলি Google-এর OAuth API এর বাস্তবায়ন ব্যবহার করতে পারে৷ উদাহরণ সহ ওয়েব-ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য OAuth প্রয়োগ করার সম্পূর্ণ তথ্যের জন্য, ওয়েব অ্যাপের জন্য OAuth নির্দেশিকা দেখুন বা এই নথিতে ওভারভিউ দেখুন৷

ইনস্টল করা অ্যাপ্লিকেশনের জন্য OAuth 1.0

ব্যবহারকারীদের কম্পিউটার এবং মোবাইল ডিভাইসে ইনস্টল করা অ্যাপ্লিকেশনগুলি একটি Google অ্যাকাউন্টের সাথে যুক্ত ডেটাতে অ্যাক্সেস অনুমোদন করতে OAuth ব্যবহার করতে পারে৷ ইনস্টল করা অ্যাপ্লিকেশনগুলির জন্য OAuth বাস্তবায়ন সম্পর্কে সম্পূর্ণ তথ্যের জন্য, ইনস্টল করা অ্যাপ্লিকেশনের জন্য OAuth নির্দেশিকা দেখুন, অথবা এই নথিতে ওভারভিউ দেখুন৷

ওয়েব অ্যাপ্লিকেশনের সাথে OAuth ব্যবহার করা

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

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

OAuth অনুমোদন প্রক্রিয়া

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

একটি মৌলিক স্তরে, প্রক্রিয়াটি নিম্নরূপ:

  1. আপনার অ্যাপ্লিকেশন অ্যাক্সেসের অনুরোধ করে এবং Google এর অনুমোদন সার্ভার থেকে একটি অননুমোদিত অনুরোধ টোকেন পায়।
  2. Google আপনাকে প্রয়োজনীয় ডেটাতে অ্যাক্সেস দেওয়ার জন্য ব্যবহারকারীকে বলে৷
  3. আপনার আবেদন অনুমোদন সার্ভার থেকে একটি অনুমোদিত অনুরোধ টোকেন পায়।
  4. আপনি একটি অ্যাক্সেস টোকেনের জন্য অনুমোদিত অনুরোধ টোকেন বিনিময় করুন।
  5. আপনি Google এর পরিষেবা অ্যাক্সেস সার্ভার থেকে ডেটা অনুরোধ করতে অ্যাক্সেস টোকেন ব্যবহার করেন৷

যখন আপনার অ্যাপ্লিকেশন প্রাথমিকভাবে কোনো ব্যবহারকারীর ডেটা অ্যাক্সেসের অনুরোধ করে, তখন Google আপনার অ্যাপ্লিকেশনে একটি অননুমোদিত অনুরোধ টোকেন জারি করে।

যদি ব্যবহারকারী ইতিমধ্যে লগ ইন না করে থাকে, তাহলে Google ব্যবহারকারীকে লগ ইন করতে অনুরোধ করে৷ Google তারপর একটি অনুমোদন পৃষ্ঠা প্রদর্শন করে যা ব্যবহারকারীকে দেখতে দেয় যে আপনার অ্যাপ্লিকেশনটি কোন Google পরিষেবা ডেটা অ্যাক্সেসের অনুরোধ করছে৷

যদি ব্যবহারকারী আপনার অ্যাপ্লিকেশনের অ্যাক্সেস অনুরোধ অনুমোদন করে, Google একটি অনুমোদিত অনুরোধ টোকেন জারি করে। প্রতিটি অনুরোধের টোকেন মাত্র এক ঘন্টার জন্য বৈধ। শুধুমাত্র একটি অনুমোদিত অনুরোধ টোকেন একটি অ্যাক্সেস টোকেনের জন্য বিনিময় করা যেতে পারে, এবং এই বিনিময় শুধুমাত্র একবার অনুমোদিত অনুরোধ টোকেনের জন্য করা যেতে পারে।

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

OAuth এর জন্য প্রস্তুত হচ্ছে

OAuth এর সাথে Google অনুমোদন পরিষেবা ব্যবহার করার জন্য আপনি আপনার অ্যাপ্লিকেশন সেট আপ করার আগে, আপনাকে অবশ্যই নিম্নলিখিত কাজগুলি সম্পূর্ণ করতে হবে৷

আপনার ওয়েব অ্যাপ্লিকেশন নিবন্ধন কিনা সিদ্ধান্ত

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

আপনার আবেদনের প্রতিটি OAuth অনুরোধে স্বাক্ষর করতে হবে। আপনি যদি আপনার অনুরোধে স্বাক্ষর করার জন্য একটি RSA-SHA1 স্বাক্ষর ব্যবহার করতে চান, তাহলে আপনাকে অবশ্যই নিবন্ধন প্রক্রিয়ার অংশ হিসেবে একটি নিরাপত্তা শংসাপত্র আপলোড করতে হবে।

বিকল্পভাবে, আপনি আপনার অনুরোধে স্বাক্ষর করার জন্য একটি HMAC-SHA1 স্বাক্ষর ব্যবহার করতে পারেন। HMAC-SHA1 স্বাক্ষরের জন্য কোনো শংসাপত্রের প্রয়োজন নেই। পরিবর্তে, Google একটি OAuth consumer secret মান তৈরি করে, যা আপনার নিবন্ধন করার পরে আপনার ডোমেনের নিবন্ধকরণ পৃষ্ঠায় প্রদর্শিত হয়।

নিবন্ধন প্রক্রিয়া সম্পর্কে আরও তথ্যের জন্য, ওয়েব অ্যাপ্লিকেশনগুলির জন্য নিবন্ধন দেখুন।

আপনার অ্যাপ্লিকেশন অ্যাক্সেস করবে ডেটার সুযোগ নির্ধারণ করা

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

সাধারণভাবে, আপনার প্রয়োজনীয় ডেটা অন্তর্ভুক্ত করে এমন সংকীর্ণ সুযোগের জন্য একটি টোকেনের অনুরোধ করা উচিত। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটির ব্যবহারকারীর "সমস্ত ক্যালেন্ডার" ফিডে অ্যাক্সেসের প্রয়োজন হয়, তাহলে আপনাকে http://www.google.com/calendar/feeds/default/allcalendars/full স্কোপের জন্য একটি টোকেন অনুরোধ করা উচিত।

OAuth টোকেন পরিচালনা করার জন্য একটি প্রক্রিয়া সেট আপ করা হচ্ছে

যখন আপনি একটি ব্যবহারকারীর ডেটার জন্য একটি OAuth অ্যাক্সেস টোকেন পান, তখন ব্যবহারকারীর পক্ষ থেকে নির্দিষ্ট Google পরিষেবার সাথে ভবিষ্যতের সমস্ত ইন্টারঅ্যাকশনের জন্য আপনাকে অবশ্যই সেই অ্যাক্সেস টোকেনটি ব্যবহার করতে হবে৷

প্রতিটি টোকেন বৈধ যার জন্য Google পরিষেবা ট্র্যাক করা সহ আপনার অ্যাপ্লিকেশনটিকে নিরাপদে টোকেন স্টোরেজ পরিচালনা করা উচিত। আপনার যদি একাধিক Google পরিষেবাতে অ্যাক্সেসের প্রয়োজন হয়, আপনি একাধিক অ্যাক্সেস টোকেন পেতে পারেন, তবে প্রতি ব্যবহারকারী এবং অ্যাপ্লিকেশন প্রতি দশটির বেশি অ্যাক্সেস টোকেন যে কোনো সময়ে অসামান্য হতে পারে।

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

একটি Google পরিষেবাতে অ্যাক্সেসের অনুরোধ করার জন্য একটি প্রক্রিয়া সেট আপ করা হচ্ছে

একটি Google পরিষেবার প্রতিটি অনুরোধ অবশ্যই স্বাক্ষরিত হতে হবে এবং একটি বৈধ OAuth অ্যাক্সেস টোকেন অন্তর্ভুক্ত করতে হবে৷ সাধারণভাবে, প্রতিটি অনুরোধ একটি HTTP GET অনুরোধের আকারে করা হয়, যেখানে শিরোনামে অন্তর্ভুক্ত অ্যাক্সেস টোকেন এবং স্বাক্ষর থাকে। নতুন ডেটা লেখার অনুরোধে HTTP POST ব্যবহার করা উচিত।

প্রতিটি Google ডেটা API- এর জন্য যথাযথ অনুরোধ বিন্যাস সম্পর্কে আরও তথ্যের জন্য, সেই API-এর জন্য ডকুমেন্টেশন পড়ুন।

OpenID বাস্তবায়ন করা হচ্ছে (ঐচ্ছিক)

আপনি যদি ব্যবহারকারীর প্রমাণীকরণের জন্য OpenID প্রয়োগ করছেন, দুটি প্রক্রিয়া একত্রিত করতে হাইব্রিড প্রোটোকল ব্যবহার করার কথা বিবেচনা করুন। OpenID+OAuth এর সাথে, একটি অনুরোধ টোকেন পাওয়ার এবং এটিকে অনুমোদন করার কাজগুলি OAuth এক্সটেনশনগুলির সাথে OpenID অনুরোধের অংশ হিসাবে পরিচালনা করা হয়। OAuthGetRequestToken এর মতো, এই এক্সটেনশনগুলি অ্যাক্সেস করা Google পরিষেবাগুলি সনাক্ত করতে ব্যবহৃত হয়৷ OpenID অনুরোধের একটি সফল প্রতিক্রিয়াতে একটি অনুমোদিত অনুরোধ টোকেন রয়েছে। একবার এই টোকেনটি প্রাপ্ত হলে, OAuthGetAccessToken ব্যবহার করুন একটি অ্যাক্সেস টোকেনের জন্য এটি বিনিময় করতে।

OAuth টোকেনগুলির সাথে কাজ করা

OAuth ব্যবহার করার জন্য, আপনার অ্যাপ্লিকেশনটিকে অবশ্যই সুগঠিত, স্বাক্ষরিত টোকেন অনুরোধ কল তৈরি করতে হবে এবং নিম্নলিখিত ক্রমগুলির জন্য প্রতিক্রিয়াগুলি পরিচালনা করতে হবে:

  1. একটি অননুমোদিত অনুরোধ টোকেন পান ( OAuthGetRequestToken )
  2. অনুরোধ টোকেন অনুমোদন করুন ( OAuthAuthorizeToken )
  3. একটি অ্যাক্সেস টোকেনের জন্য অনুমোদিত অনুরোধ টোকেন বিনিময় করুন ( OAuthGetAccessToken )

আপনার আবেদন নিবন্ধিত হোক বা না হোক, সমস্ত OAuth অনুরোধে স্বাক্ষর করতে হবে। আরও তথ্যের জন্য, OAuth অনুরোধ স্বাক্ষর করা দেখুন।

আপনি OAuth প্লেগ্রাউন্ডে অনুমোদনের টোকেন অনুরোধ এবং গ্রহণের সাথে পরীক্ষা করতে পারেন।

বিস্তারিত ডকুমেন্টেশনের জন্য, OAuth API রেফারেন্স দেখুন।

একটি কলব্যাক URL সেট করা হচ্ছে৷

আপনি একটি OAuthGetRequestToken অনুরোধে oauth_callback এর জন্য একটি মান নির্দিষ্ট করতে পারেন, আপনার অ্যাক্সেসের অনুরোধ অনুমোদন করার পরে Google কোথায় রিডাইরেক্ট করবে তা নির্ধারণ করতে। কলব্যাক URL-এ ক্যোয়ারী প্যারামিটার অন্তর্ভুক্ত থাকতে পারে। পুনঃনির্দেশে একই ক্যোয়ারী প্যারামিটার, সেইসাথে অনুমোদিত অনুরোধ টোকেন অন্তর্ভুক্ত থাকবে, যা আপনার আবেদন অবশ্যই পার্স করতে সক্ষম হবে।

উদাহরণস্বরূপ, একাধিক ভাষা সমর্থন করার সময়, আপনি একটি ক্যোয়ারী প্যারামিটার অন্তর্ভুক্ত করতে পারেন যা ব্যবহারকারী যে অ্যাপ্লিকেশনটি দেখছে তার সংস্করণটি সনাক্ত করে। "http://www.yoursite.com/Retrievetoken?Lang=de" এর একটি oauth_callback মান "http://www.yoursite.com/Retrievetoken?Lang=de&oauth_token=DQAADKEDE" পুনঃনির্দেশিত হবে। টোকেন এবং ভাষার প্যারামিটার নিশ্চিত করে যে ব্যবহারকারীকে সাইটের সঠিক সংস্করণে পুনঃনির্দেশিত করা হয়েছে।

oauth_callback প্যারামিটারটি অন্তর্ভুক্ত না থাকলে, Google ব্যবহারকারীকে এমন একটি ওয়েব পৃষ্ঠায় নির্দেশ করবে যা একটি যাচাইকরণ নম্বর প্রদর্শন করে ( উদাহরণ দেখুন ), আপনার অ্যাক্সেসের অনুরোধ অনুমোদন করার পরে৷ আপনি একটি অনুমোদিত অনুরোধ টোকেন পাওয়ার আগে ব্যবহারকারীকে ম্যানুয়ালি আপনার আবেদনে ফিরে আসতে হবে এবং যাচাইকরণ নম্বর লিখতে হবে।

ব্যবহারকারীদের কাছে আপনার আবেদন শনাক্ত করা

ব্যবহারকারীর কাছ থেকে অ্যাক্সেস সম্মতির অনুরোধ করার সময় Google সাধারণত একটি অ্যাপ্লিকেশনের নাম প্রদর্শন করে ( উদাহরণ দেখুন )।

আপনার আবেদন নিবন্ধিত না হলে, আপনার আবেদনের নাম উল্লেখ করতে আপনার OAuthGetRequestToken অনুরোধে xoauth_displayname প্যারামিটার ব্যবহার করুন। যদি সেই প্যারামিটারটি নির্দিষ্ট করা না থাকে, Google oauth_callback প্যারামিটার দ্বারা প্রদত্ত URL-এর ডোমেন নাম প্রদর্শন করে৷ যদি কোন কলব্যাক URL প্রদান না করা হয়, Google "বেনামী" স্ট্রিং প্রদর্শন করে।

আপনার আবেদন নিবন্ধিত হলে এই প্যারামিটার সেট করবেন না। ডিফল্টরূপে, গুগল রেজিস্ট্রেশনের সময় নির্দিষ্ট প্রদর্শন নাম দেখায়। আপনি যদি আপনার OAuthGetRequestToken অনুরোধে একটি প্রদর্শন নাম সেট করেন, তাহলে Google আপনার নিবন্ধিত প্রদর্শন নামের পরিবর্তে এটি ব্যবহার করবে এবং একটি বার্তা অন্তর্ভুক্ত করবে যে আপনার আবেদনের পরিচয় যাচাই করা যাবে না।

দ্রষ্টব্য: OAuth প্লেগ্রাউন্ডে xoauth_displayname প্যারামিটার সেট করতে, অনুরোধ টোকেন আনার আগে "উন্নত" বাক্সে চেক করুন।

Google Apps ডোমেনগুলির সাথে কাজ করা

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

OAuth সম্পর্কে আরও তথ্য

Google-এর OAuth বাস্তবায়নের বিষয়ে বিস্তারিত তথ্যের জন্য, আপনার আবেদন কীভাবে নিবন্ধন করতে হয় এবং প্রয়োজনীয় OAuth প্যারামিটার তৈরি করতে হয়, এই অতিরিক্ত সংস্থানগুলি দেখুন:

উপরে ফিরে যাও

ইনস্টল করা অ্যাপ্লিকেশনের সাথে OAuth ব্যবহার করা

সমস্ত Google ডেটা APIs OAuth সমর্থন করে, অ্যাপ্লিকেশনগুলিতে ডেটা ব্যবহারের অনুমোদনের জন্য একটি উন্মুক্ত মান৷ OAuth ব্যবহার করার জন্য ইনস্টল করা অ্যাপ্লিকেশনগুলিকে Google-এর সাথে নিবন্ধিত করার প্রয়োজন নেই৷

OAuth অনুমোদন প্রক্রিয়া

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

একটি মৌলিক স্তরে, প্রক্রিয়াটি নিম্নরূপ:

  1. আপনার অ্যাপ্লিকেশন অ্যাক্সেসের অনুরোধ করে এবং Google এর অনুমোদন সার্ভার থেকে একটি অননুমোদিত অনুরোধ টোকেন পায়।
  2. Google আপনাকে প্রয়োজনীয় ডেটাতে অ্যাক্সেস দেওয়ার জন্য ব্যবহারকারীকে বলে৷
  3. আপনার আবেদন অনুমোদন সার্ভার থেকে একটি অনুমোদিত অনুরোধ টোকেন পায়।
  4. আপনি একটি অ্যাক্সেস টোকেনের জন্য অনুমোদিত অনুরোধ টোকেন বিনিময় করুন।
  5. আপনি Google এর পরিষেবা অ্যাক্সেস সার্ভার থেকে ডেটা অনুরোধ করতে অ্যাক্সেস টোকেন ব্যবহার করেন৷

যখন আপনার অ্যাপ্লিকেশন প্রাথমিকভাবে কোনো ব্যবহারকারীর ডেটা অ্যাক্সেসের অনুরোধ করে, তখন Google আপনার অ্যাপ্লিকেশনে একটি অননুমোদিত অনুরোধ টোকেন জারি করে।

যদি ব্যবহারকারী ইতিমধ্যে লগ ইন না করে থাকে, তাহলে Google ব্যবহারকারীকে লগ ইন করতে অনুরোধ করে৷ Google তারপর একটি অনুমোদন পৃষ্ঠা প্রদর্শন করে যা ব্যবহারকারীকে দেখতে দেয় যে আপনার অ্যাপ্লিকেশনটি কোন Google পরিষেবা ডেটা অ্যাক্সেসের অনুরোধ করছে৷

যদি ব্যবহারকারী আপনার অ্যাপ্লিকেশনের অ্যাক্সেস অনুরোধ অনুমোদন করে, Google একটি অনুমোদিত অনুরোধ টোকেন জারি করে। প্রতিটি অনুরোধের টোকেন মাত্র এক ঘন্টার জন্য বৈধ। শুধুমাত্র একটি অনুমোদিত অনুরোধ টোকেন একটি অ্যাক্সেস টোকেনের জন্য বিনিময় করা যেতে পারে, এবং এই বিনিময় শুধুমাত্র একবার অনুমোদিত অনুরোধ টোকেনের জন্য করা যেতে পারে।

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

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

OAuth এর জন্য প্রস্তুত হচ্ছে

OAuth এর সাথে Google অনুমোদন পরিষেবা ব্যবহার করার জন্য আপনি আপনার অ্যাপ্লিকেশন সেট আপ করার আগে, আপনাকে অবশ্যই নিম্নলিখিত কাজগুলি সম্পূর্ণ করতে হবে৷

আপনার অ্যাপ্লিকেশন অ্যাক্সেস করবে ডেটার সুযোগ নির্ধারণ করা

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

সাধারণভাবে, আপনার প্রয়োজনীয় ডেটা অন্তর্ভুক্ত করে এমন সংকীর্ণ সুযোগের জন্য একটি টোকেনের অনুরোধ করা উচিত। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটির ব্যবহারকারীর "সমস্ত ক্যালেন্ডার" ফিডে অ্যাক্সেসের প্রয়োজন হয়, তাহলে আপনাকে http://www.google.com/calendar/feeds/default/allcalendars/full স্কোপের জন্য একটি টোকেন অনুরোধ করা উচিত।

OAuth টোকেন পরিচালনা করার জন্য একটি প্রক্রিয়া সেট আপ করা হচ্ছে

যখন আপনি একটি ব্যবহারকারীর ডেটার জন্য একটি OAuth অ্যাক্সেস টোকেন পান, তখন ব্যবহারকারীর পক্ষ থেকে নির্দিষ্ট Google পরিষেবার সাথে ভবিষ্যতের সমস্ত ইন্টারঅ্যাকশনের জন্য আপনাকে অবশ্যই সেই অ্যাক্সেস টোকেনটি ব্যবহার করতে হবে৷

প্রতিটি টোকেন বৈধ যার জন্য Google পরিষেবা ট্র্যাক করা সহ আপনার অ্যাপ্লিকেশনটিকে নিরাপদে টোকেন স্টোরেজ পরিচালনা করা উচিত।

যদি আপনার অ্যাপ্লিকেশন একাধিক ব্যবহারকারী অ্যাকাউন্ট সমর্থন করে, তাহলে প্রতিটি টোকেন কোন অ্যাকাউন্টের সাথে যুক্ত তা আপনাকে অবশ্যই ট্র্যাক রাখতে হবে।

একটি Google পরিষেবাতে অ্যাক্সেসের অনুরোধ করার জন্য একটি প্রক্রিয়া সেট আপ করা হচ্ছে

একটি Google পরিষেবার প্রতিটি অনুরোধ অবশ্যই স্বাক্ষরিত হতে হবে এবং একটি বৈধ OAuth অ্যাক্সেস টোকেন অন্তর্ভুক্ত করতে হবে৷ সাধারণভাবে, প্রতিটি অনুরোধ একটি HTTP GET অনুরোধের আকারে করা হয়, যেখানে শিরোনামে অন্তর্ভুক্ত অ্যাক্সেস টোকেন এবং স্বাক্ষর থাকে। নতুন ডেটা লেখার অনুরোধে HTTP POST ব্যবহার করা উচিত।

প্রতিটি Google ডেটা API- এর জন্য যথাযথ অনুরোধ বিন্যাস সম্পর্কে আরও তথ্যের জন্য, সেই API-এর জন্য ডকুমেন্টেশন পড়ুন।

OAuth টোকেনগুলির সাথে কাজ করা

OAuth ব্যবহার করার জন্য, আপনার অ্যাপ্লিকেশনটিকে অবশ্যই সুগঠিত, স্বাক্ষরিত টোকেন অনুরোধ কল তৈরি করতে হবে এবং নিম্নলিখিত ক্রমগুলির জন্য প্রতিক্রিয়াগুলি পরিচালনা করতে হবে:

  1. একটি অননুমোদিত অনুরোধ টোকেন পান ( OAuthGetRequestToken )
  2. অনুরোধ টোকেন অনুমোদন করুন ( OAuthAuthorizeToken )
  3. একটি অ্যাক্সেস টোকেনের জন্য অনুমোদিত অনুরোধ টোকেন বিনিময় করুন ( OAuthGetAccessToken )

আপনার আবেদন নিবন্ধিত হোক বা না হোক, সমস্ত OAuth অনুরোধে স্বাক্ষর করতে হবে। আরও তথ্যের জন্য, OAuth অনুরোধ স্বাক্ষর করা দেখুন। ইনস্টল করা অ্যাপ্লিকেশনগুলিকে একটি অনিবন্ধিত অ্যাপ্লিকেশনের জন্য নির্দেশাবলী অনুসরণ করা উচিত।

আপনি OAuth প্লেগ্রাউন্ডে অনুমোদনের টোকেন অনুরোধ এবং গ্রহণের সাথে পরীক্ষা করতে পারেন।

বিস্তারিত ডকুমেন্টেশনের জন্য, OAuth API রেফারেন্স দেখুন।

ব্যবহারকারীদের কাছে আপনার আবেদন শনাক্ত করা

ব্যবহারকারীর কাছ থেকে অ্যাক্সেস সম্মতির অনুরোধ করার সময় Google সাধারণত একটি অ্যাপ্লিকেশনের নাম প্রদর্শন করে ( উদাহরণ দেখুন )।

আপনার আবেদনের নাম উল্লেখ করতে আপনার OAuthGetRequestToken অনুরোধে xoauth_displayname প্যারামিটার ব্যবহার করুন। যদি সেই প্যারামিটারটি নির্দিষ্ট করা না থাকে, Google oauth_callback প্যারামিটার দ্বারা প্রদত্ত URL-এর ডোমেন নাম প্রদর্শন করে৷ যদি কোন কলব্যাক URL প্রদান না করা হয়, Google "বেনামী" স্ট্রিং প্রদর্শন করে।

দ্রষ্টব্য: OAuth প্লেগ্রাউন্ডে xoauth_displayname প্যারামিটার সেট করতে, অনুরোধ টোকেন আনার আগে "উন্নত" বাক্সে চেক করুন।

একটি ওয়েব ব্রাউজার চালু করা হচ্ছে

OAuth অনুমোদন প্রক্রিয়ার অংশ হিসাবে, আপনার আবেদন অবশ্যই একটি OAuthAuthorizeToken অনুরোধ করতে হবে। ব্যবহারকারীকে অবশ্যই একটি Google ওয়েব পৃষ্ঠায় লগ ইন করতে হবে এবং আপনার অ্যাপ্লিকেশনের অ্যাক্সেসের অনুরোধ অনুমোদন করতে হবে।

  • অটোডিটেক্ট মোড বেশিরভাগ অ্যাপ্লিকেশনের জন্য ব্যবহার করা উচিত
  • ডিভাইস মোড এমন অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা উচিত যা একটি সম্পূর্ণ ওয়েব ব্রাউজার চালু করতে পারে না।
  • বিকাশ মোড শুধুমাত্র প্রাথমিক বিকাশের সময় ব্যবহার করা উচিত।

স্বয়ংক্রিয় সনাক্তকরণ মোড

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

এই মোডের জন্য আপনাকে একটি কলব্যাক URL প্রদান করতে হবে যেখানে ব্যবহারকারীরা আপনার অ্যাক্সেসের অনুরোধ অনুমোদন করার পরে পুনঃনির্দেশিত হয়৷ এই URLটি অবশ্যই OAuthGetRequestToken অনুরোধের oauth_callback প্যারামিটার এবং OAuthGetAccessToken অনুরোধের verifier প্যারামিটার হিসাবে প্রদান করতে হবে।

ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে, ব্যবহারকারীকে যখন এই URL-এ পুনঃনির্দেশিত করা হয় তখন আপনার অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে সনাক্ত করার চেষ্টা করা উচিত এবং অবিলম্বে নিজেকে অগ্রভাগে নিয়ে আসে এবং OAuth প্রক্রিয়াটি সম্পূর্ণ করার জন্য একটি OAuthGetAccessToken অনুরোধ করে।

আরও তথ্য এবং সর্বোত্তম অনুশীলনের জন্য, স্বয়ংক্রিয় সনাক্তকরণ অনুমোদন দেখুন।

যদি আপনার অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে সনাক্ত করতে না পারে কখন ব্যবহারকারীকে কলব্যাক ইউআরএলে পুনঃনির্দেশিত করা হয়, বা নিজেকে ফোরগ্রাউন্ডে আনতে না পারে, তাহলে কলব্যাক ইউআরএলটি এমন একটি পৃষ্ঠা প্রদর্শন করবে যা ব্যাখ্যা করে যে কীভাবে আপনার অ্যাপ্লিকেশনটিকে ফোরগ্রাউন্ডে আনতে হয় এবং কীভাবে OAuthGetAccessToken অনুরোধটি ভিতর থেকে শুরু করতে হয়। আপনার আবেদন.

ডিভাইস মোড

যদি আপনার অ্যাপ্লিকেশনটি একটি সম্পূর্ণ ওয়েব ব্রাউজার চালু করতে না পারে, তাহলে ধনী-ক্লায়েন্ট ডিভাইসগুলির পক্ষে ওয়েব ব্রাউজার ছাড়া অনুমোদন করাও সম্ভব৷

এই মোডটি একজন বিকাশকারীকে একটি ওয়েবসাইট সেট আপ করার অনুমতি দেয় যেখানে একজন ব্যবহারকারী অ্যাক্সেসের অনুরোধ অনুমোদন করতে পারে। অনুমোদনের পরে, ব্যবহারকারীকে Google দ্বারা তৈরি একটি কোড দেওয়া হয় এবং বিকাশকারীর সাইটে পুনঃনির্দেশিত করা হয়। এই সাইটের ব্যবহারকারীকে ব্যাখ্যা করা উচিত কিভাবে অনুমোদন প্রক্রিয়া সম্পূর্ণ করতে তাদের ডিভাইসে কোড ইনপুট করতে হয়।

উন্নয়ন মোড

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

AutoDetect মোডের মতো, আপনার অ্যাপ্লিকেশনটিকে অবশ্যই একটি ব্রাউজার চালু করতে হবে এবং ব্যবহারকারীকে অবশ্যই আপনার অনুরোধ অনুমোদন করতে হবে। যাইহোক, কলব্যাক URL-এর জন্য একটি ওয়েবপৃষ্ঠা তৈরি করার পরিবর্তে, আপনি oauth_callback প্যারামিটারের মান "oob" (ব্যান্ডের বাইরে) সেট করতে পারেন।

সেই ক্ষেত্রে, ব্যবহারকারী আপনার অনুরোধ অনুমোদন করার পরে, Google ব্যবহারকারীকে একটি Google অ্যাকাউন্ট পৃষ্ঠায় নির্দেশ করে যা একটি যাচাইকরণ নম্বর প্রদর্শন করে ( উদাহরণ দেখুন)।

আপনি একটি OAuthGetAccessToken অনুরোধ করার আগে ব্যবহারকারীকে অবশ্যই আপনার অ্যাপ্লিকেশনে ফিরে যেতে হবে এবং যাচাইকরণ নম্বরটি লিখতে হবে।

OAuth সম্পর্কে আরও তথ্য

Google-এর OAuth বাস্তবায়নের বিষয়ে বিস্তারিত তথ্যের জন্য, আপনার আবেদন কীভাবে নিবন্ধন করতে হয় এবং প্রয়োজনীয় OAuth প্যারামিটার তৈরি করতে হয়, এই অতিরিক্ত সংস্থানগুলি দেখুন:

উপরে ফিরে যাও

অনুমোদনের জন্য AuthSub ব্যবহার করা

AuthSub হল একটি Google মালিকানাধীন অনুমোদন API, বেশিরভাগ Google API-এর জন্য OAuth-এর বিকল্প হিসাবে উপলব্ধ। সম্ভব হলে AuthSub ব্যবহার করা এড়িয়ে চলা উচিত। আপনার যদি ইতিমধ্যেই AuthSub ব্যবহার করে এমন অ্যাপ্লিকেশন থাকে, তাহলে আপনাকে OAuth বা হাইব্রিড প্রোটোকল-এ স্থানান্তরিত করা উচিত।

AuthSub অনুমোদন প্রক্রিয়া

AuthSub-এর সাথে অনুমোদনের মধ্যে তিনটি সত্তার মধ্যে মিথস্ক্রিয়াগুলির একটি ক্রম জড়িত: ওয়েব অ্যাপ্লিকেশন, Google পরিষেবা এবং ব্যবহারকারী৷ এই চিত্রটি ক্রমটি চিত্রিত করে:

অনুমোদন প্রক্রিয়া

  1. যখন ওয়েব অ্যাপ্লিকেশনটিকে কোনো ব্যবহারকারীর Google পরিষেবা অ্যাক্সেস করার প্রয়োজন হয়, তখন এটি Google-এর অনুমোদন প্রক্সি পরিষেবাতে একটি AuthSub কল করে৷
  2. অনুমোদন পরিষেবা একটি অ্যাক্সেস অনুরোধ পৃষ্ঠা পরিবেশন করে সাড়া দেয়। এই Google-পরিচালিত পৃষ্ঠাটি ব্যবহারকারীকে তাদের Google পরিষেবাতে অ্যাক্সেস মঞ্জুর/অস্বীকার করতে অনুরোধ করে। ব্যবহারকারীকে প্রথমে তাদের অ্যাকাউন্টে লগ ইন করতে বলা হতে পারে।
  3. ব্যবহারকারী ওয়েব অ্যাপ্লিকেশন অ্যাক্সেস মঞ্জুর বা অস্বীকার করার সিদ্ধান্ত নেয়। ব্যবহারকারী যদি অ্যাক্সেস অস্বীকার করে, তবে তাদের ওয়েব অ্যাপ্লিকেশনে ফিরে যাওয়ার পরিবর্তে একটি Google পৃষ্ঠায় নির্দেশিত করা হয়।
  4. যদি ব্যবহারকারী অ্যাক্সেস মঞ্জুর করে, অনুমোদন পরিষেবা ব্যবহারকারীকে ওয়েব অ্যাপ্লিকেশনে পুনঃনির্দেশ করে। পুনঃনির্দেশে একটি অনুমোদন টোকেন রয়েছে যা একটি ব্যবহারের জন্য ভাল; এটি একটি দীর্ঘজীবী টোকেনের জন্য বিনিময় করা যেতে পারে।
  5. ওয়েব অ্যাপ্লিকেশনটি ব্যবহারকারীর এজেন্ট হিসাবে কাজ করার জন্য অনুমোদন টোকেন ব্যবহার করে একটি অনুরোধের সাথে Google পরিষেবার সাথে যোগাযোগ করে।
  6. যদি Google পরিষেবা টোকেনটিকে স্বীকৃতি দেয় তবে এটি অনুরোধ করা ডেটা সরবরাহ করে।

AuthSub এর সাথে কাজ করা

আপনার ওয়েব অ্যাপ্লিকেশনে AuthSub অন্তর্ভুক্ত করার জন্য এই কাজগুলি প্রয়োজন:

  1. আপনার ওয়েব অ্যাপ্লিকেশন নিবন্ধন করবেন কিনা তা নির্ধারণ করুন।

    নিবন্ধিত ওয়েব অ্যাপ্লিকেশনগুলির Google দ্বারা স্বীকৃত হওয়ার সুবিধা রয়েছে; Google লগইন পৃষ্ঠায় ব্যবহারকারীদের কাছে প্রদর্শিত আদর্শ সতর্কতা পরিবর্তন বা বাদ দেওয়া হয়েছে। এছাড়াও, নিবন্ধিত ওয়েব অ্যাপ্লিকেশনগুলিকে শুধুমাত্র কলিং URL এর পরিবর্তে একটি বর্ণনামূলক নাম দিয়ে চিহ্নিত করা হয়। মনে রাখবেন যে কিছু Google পরিষেবা শুধুমাত্র অনিবন্ধিত ওয়েব অ্যাপ্লিকেশনগুলিতে সীমিত অ্যাক্সেসের অনুমতি দেয়। আপনি যদি নিবন্ধন করতে চান তবে এই স্বয়ংক্রিয় নিবন্ধন প্রক্রিয়াটি ব্যবহার করুন।

    আপনি নিবন্ধন করলে, আপনি একটি নিরাপত্তা শংসাপত্র এবং কীগুলিও প্রদান করতে পারেন। ফাইলে একটি শংসাপত্র সহ নিবন্ধিত ওয়েব অ্যাপ্লিকেশনগুলি একটি Google পরিষেবা থেকে ডেটা অনুরোধ করার সময় ব্যবহারের জন্য নিরাপদ টোকেন অর্জন করতে সক্ষম। (প্রয়োজনে তারা অ-সুরক্ষিত টোকেনও ব্যবহার করতে পারে।)

  2. কোন ধরনের টোকেন ব্যবহার করতে হবে এবং কীভাবে সেগুলি পরিচালনা করবেন তা নির্ধারণ করুন।

    Google থেকে প্রাপ্ত একটি অনুমোদন টোকেন সেই ব্যবহারকারীর জন্য নির্দিষ্ট Google পরিষেবার সাথে ভবিষ্যতের সমস্ত ইন্টারঅ্যাকশনের জন্য ব্যবহার করার উদ্দেশ্যে। আপনি যে ধরনের টোকেন ব্যবহার করতে চান--একক-ব্যবহার বা সেশন--আপনার ওয়েব অ্যাপলিকেশন Google পরিষেবার সাথে কী ধরনের ইন্টারঅ্যাকশন করবে তার উপর নির্ভর করে। উদাহরণস্বরূপ, একটি একক-ব্যবহারের টোকেন যথেষ্ট হতে পারে যদি মিথস্ক্রিয়াটি এক-বার বা বিরল ঘটনা হয়।

    আপনি যদি সেশন টোকেন পেতে চান এবং Google পরিষেবা অ্যাক্সেস করতে নিয়মিতভাবে ব্যবহার করেন, তাহলে আপনার ওয়েব অ্যাপ্লিকেশনটিকে টোকেন সঞ্চয়স্থান পরিচালনা করতে হবে, যার মধ্যে ব্যবহারকারী এবং টোকেনটি বৈধ Google পরিষেবার ট্র্যাকিং সহ। Google অ্যাকাউন্টগুলি বিপুল সংখ্যক টোকেন পরিচালনা করার জন্য সেট আপ করা হয় না, এবং বাস্তবে যে কোনো সময়ে দশটির বেশি বৈধ টোকেন (প্রতি ব্যবহারকারী, প্রতি ওয়েব অ্যাপ্লিকেশন) অসামান্য হওয়ার অনুমতি দেয় না। এই সীমাবদ্ধতা একটি ওয়েব অ্যাপ্লিকেশনকে প্রয়োজনে বিভিন্ন পরিষেবা কভার করার জন্য একাধিক টোকেন পেতে অনুমতি দেয়; এটি প্রতিবার একটি নতুন টোকেন পাওয়া সমর্থন করে না যখন ওয়েব অ্যাপ্লিকেশনের একটি Google পরিষেবা অ্যাক্সেস করার প্রয়োজন হয়৷ আপনি সেশন টোকেন সংরক্ষণ করার সিদ্ধান্ত নিলে, টোকেনগুলিকে সার্ভারে সংরক্ষিত অন্যান্য সংবেদনশীল তথ্যের মতো নিরাপদে বিবেচনা করা উচিত।

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

  3. Google পরিষেবা অ্যাক্সেস করার জন্য প্রয়োজনীয় সুযোগ নির্ধারণ করুন।

    প্রতিটি Google পরিষেবা কতটা এবং কী ধরনের অ্যাক্সেসের অনুমতি দেবে তা নির্ধারণ করে। এই অ্যাক্সেস একটি সুযোগ মান হিসাবে প্রকাশ করা হয়. একটি পরিষেবার সুযোগ সমগ্র পরিষেবা সনাক্তকারী একটি সাধারণ URL হতে পারে, অথবা এটি আরও সীমাবদ্ধ অ্যাক্সেস নির্দিষ্ট করতে পারে। কিছু পরিষেবা গুরুতরভাবে অ্যাক্সেসকে সীমিত করে, যেমন সীমিত তথ্যে শুধুমাত্র-পঠন অ্যাক্সেসের অনুমতি দেয়। আপনি যে Google পরিষেবাটি অ্যাক্সেস করতে চান তার জন্য অনুমোদিত স্কোপগুলি পেতে, সেই পরিষেবাটির জন্য ডকুমেন্টেশন দেখুন৷ আপনি সম্ভাব্য সবচেয়ে শক্তভাবে স্কোপ করা টোকেন অনুরোধ করা উচিত. উদাহরণস্বরূপ, যদি Gmail-এর অ্যাটম ফিড বৈশিষ্ট্য অ্যাক্সেস করার চেষ্টা করা হয়, তাহলে "http://www.google.com/calendar/feeds/" স্কোপ ব্যবহার করুন, "http://www.google.com/calendar/" নয়। বৃহৎ সুযোগের অনুরোধের সাথে Google পরিষেবাগুলি অনেক বেশি সীমাবদ্ধ।

  4. একটি অনুমোদন টোকেন অনুরোধ এবং গ্রহণ করার জন্য একটি প্রক্রিয়া সেট আপ করুন৷

    মেকানিজমকে অবশ্যই একটি সুগঠিত AuthSubRequest কল তৈরি করতে হবে, যার মধ্যে উপযুক্ত পরবর্তী এবং স্কোপ ইউআরএল মান উল্লেখ করা (ধাপে 3 এ নির্ধারিত)। আপনি যদি নিরাপদ টোকেন ব্যবহার করেন এবং/অথবা সেশন টোকেন পরিচালনা করেন, তাহলে অনুরোধে এই ভেরিয়েবলের মানও অন্তর্ভুক্ত করতে হবে।

    পরবর্তী URL-এ ক্যোয়ারী প্যারামিটার থাকতে পারে। উদাহরণস্বরূপ, একাধিক ভাষা সমর্থন করার সময়, একটি ক্যোয়ারী প্যারামিটার অন্তর্ভুক্ত করুন যা ব্যবহারকারী যে ওয়েব অ্যাপ্লিকেশনটি দেখছেন তার সংস্করণ সনাক্ত করে৷ http://www.yoursite.com/Retrievetoken?Lang=de এর পরবর্তী মান http://www.yoursite.com/Retrievetoken?Lang=de&token=DQAADKEDE পুনঃনির্দেশিত হবে। টোকেন এবং ল্যাং প্যারামিটার পার্সিং নিশ্চিত করে যে ব্যবহারকারীকে সাইটের সঠিক সংস্করণে পুনঃনির্দেশিত করা হয়েছে।

    নির্দিষ্ট পরিস্থিতিতে, এইচডি প্যারামিটার ব্যবহার করা আপনার ব্যবহারকারীদের অভিজ্ঞতাকে স্ট্রিমলাইন করতে সাহায্য করতে পারে যখন তাদের Google অ্যাকাউন্ট সাইটে অ্যাক্সেস দিতে বলা হয়। বেশিরভাগ ক্ষেত্রে, প্রক্রিয়াটি তাদের অ্যাকাউন্টে লগ ইন করার এবং অ্যাক্সেস মঞ্জুর করবেন কিনা তা বেছে নেওয়ার একটি সহজ বিষয়। যে ব্যবহারকারীদের একাধিক Google অ্যাকাউন্ট রয়েছে (একটি নিয়মিত জিমেইল অ্যাকাউন্ট এবং/অথবা এক বা একাধিক Google Apps হোস্ট করা অ্যাকাউন্ট ), তবে, তারা কোন অ্যাকাউন্টটি অ্যাক্সেস করতে চান তা সনাক্ত করার জন্য অতিরিক্ত "সর্বজনীন লগইন" প্রক্রিয়া অনুসরণ করতে হবে। যদি আপনার অ্যাপ্লিকেশনটি একটি নির্দিষ্ট পরিচালিত ডোমেনের জন্য ডিজাইন করা হয়, তাহলে আপনি সেই ডোমেনটি সনাক্ত করতে এই প্যারামিটার ব্যবহার করে এই অতিরিক্ত পদক্ষেপগুলি বাদ দিতে পারেন৷ এছাড়াও আপনি hd প্যারামিটার ব্যবহার করতে পারেন যদি আপনার অ্যাপ্লিকেশান হোস্ট করা অ্যাকাউন্টগুলিতে উপলব্ধ নয় এমন পরিষেবাগুলি অ্যাক্সেস করে--মানটিকে 'ডিফল্ট'-এ সেট করা শুধুমাত্র নিয়মিত অ্যাকাউন্টগুলিতে অনুমোদন সীমাবদ্ধ করবে৷ এইচডি মান সেট করা হলে, Google স্বয়ংক্রিয়ভাবে অনুমোদনের জন্য সঠিক অ্যাকাউন্ট নির্বাচন করবে।

    টোকেন প্রক্রিয়াটি অবশ্যই Google থেকে প্রাপ্ত পুনঃনির্দেশকে পার্স করার জন্য সজ্জিত হতে হবে, যেটিতে একক-ব্যবহারের টোকেন রয়েছে এবং এটির সাথে পদক্ষেপ নিতে হবে। যেহেতু অনুমোদন টোকেনগুলি একজন ব্যবহারকারীর জন্য নির্দিষ্ট, আপনার অ্যাপ্লিকেশনটি অবশ্যই তার ব্যবহারকারীর সাথে একটি টোকেন সংযুক্ত করতে সক্ষম হবে। পছন্দের বিকল্প হল টোকেন অনুরোধ করার আগে ব্যবহারকারীকে একটি কুকি ইস্যু করা। তারপর, যখন Google একটি সংযুক্ত টোকেন সহ ব্যবহারকারীকে আপনার সাইটে ফেরত পাঠায়, তখন আপনার অ্যাপ্লিকেশনটি কুকি পড়তে পারে এবং সঠিক ব্যবহারকারী সনাক্তকরণের সাথে টোকেনটিকে সংযুক্ত করতে পারে।

  5. সেশন টোকেন অনুরোধ করার জন্য মেকানিজম সেট আপ করুন এবং প্রাসঙ্গিক হলে সেগুলি সংরক্ষণ বা প্রত্যাহার করুন।

    ধাপ 2-এ আপনি কোন টোকেন পরিচালনার সিদ্ধান্ত নিয়েছেন তার উপর নির্ভর করে, সেশন টোকেন ( AuthSubSessionToken এবং AuthSubRevokeToken ) পেতে এবং প্রত্যাহার করার জন্য আপনাকে প্রক্রিয়া তৈরি করতে হতে পারে। সেশন এবং প্রত্যাহার প্রক্রিয়া পরীক্ষা করতে, AuthSubTokenInfo ব্যবহার করুন, যা নির্দেশ করে যে প্রদত্ত টোকেন বৈধ কিনা। টোকেন সংরক্ষণ করা হলে, অ্যাপ্লিকেশনটিকে অবশ্যই ব্যবহারকারী আইডি এবং টোকেন দ্বারা আচ্ছাদিত পরিষেবা (স্কোপ) উভয়ই ট্র্যাক করতে হবে।

  6. একটি Google পরিষেবাতে অ্যাক্সেসের অনুরোধ করার জন্য একটি প্রক্রিয়া সেট আপ করুন৷

    সঠিক অনুরোধ বিন্যাসে তথ্যের জন্য Google পরিষেবার জন্য ডকুমেন্টেশন পড়ুন। একটি Google পরিষেবার সমস্ত অনুরোধ একটি বৈধ অনুমোদন টোকেন অন্তর্ভুক্ত করা আবশ্যক. সাধারণভাবে, একটি Google পরিষেবার জন্য একটি অনুরোধ একটি HTTP GET (অথবা নতুন ডেটা লিখলে POST) আকারে হয়, অনুরোধ শিরোনামে উল্লেখ করা টোকেন সহ।

    অনুরোধ শিরোনাম নিম্নলিখিত ফর্ম নিতে হবে:

    Authorization: AuthSub token="token"

    যেখানে টোকেন হল অনুমোদনের টোকেন, একক-ব্যবহার বা সেশন, একটি AuthSub অনুরোধের প্রতিক্রিয়া হিসাবে Google থেকে প্রাপ্ত। টোকেন সুরক্ষিত হলে, এটি অবশ্যই একটি ডিজিটাল স্বাক্ষর সহ থাকতে হবে। নির্দেশাবলী এবং উদাহরণগুলির জন্য " স্বাক্ষর করার অনুরোধ " দেখুন৷

    নীচের উদাহরণটি Google ক্যালেন্ডার ফিড পরিষেবাতে একটি কলের জন্য একটি অনুরোধ শিরোনামকে চিত্রিত করে৷ এই অনুরোধে একটি অ-সুরক্ষিত টোকেন রয়েছে:

    GET /calendar/feeds/default/private/full HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Authorization: AuthSub token="GD32CMCL25aZ-v____8B"
    User-Agent: Java/1.5.0_06
    Host: www.google.com
    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Connection: keep-alive

AuthSub সম্পর্কে আরও তথ্য

AuthSub-এর তথ্যের জন্য, Google-এর সাথে আপনার আবেদন নিবন্ধন করা এবং একটি সেশন টোকেনের জন্য এককালীন টোকেন বিনিময়ের বিশদ ব্যাখ্যা সহ, এই অতিরিক্ত সংস্থানগুলি দেখুন:

উপরে ফিরে যাও

Using ClientLogin for authorization

ClientLogin is a Google proprietary authorization API, available as an alternative to OAuth for most Google APIs. You should avoid using ClientLogin if possible. If you already have applications that use ClientLogin, you should migrate to OAuth or the hybrid protocol.

Authentication for Installed Applications: ClientLogin

ClientLogin allows your users to log into their Google account from inside your application. The application then contacts Google with the login data and requests access to a specified Google Data API. Once the login information has been successfully authenticated, Google returns a token, which your application will reference each time it requests access to the user's account, such as to get or post data. The token remains valid for a set length of time, defined by whichever Google service you're working with.

Note : The Google Data APIs Client Libraries provide methods to help you use ClientLogin in your installed applications. বিশেষত, একটি প্রমাণীকরণ টোকেন অর্জন, ক্যাপচা চ্যালেঞ্জগুলি পরিচালনা, পরবর্তীতে ব্যবহারের জন্য প্রমাণীকরণ টোকেন প্রত্যাহার করা এবং প্রতিটি অনুরোধের সাথে সঠিক Authorization শিরোনাম পাঠানোর পদ্ধতি রয়েছে৷ If you are working with one of the libraries, see Using ClientLogin with the Google Data APIs Client Libraries .

The ClientLogin authorization process

Authorization with ClientLogin involves a sequence of interactions between three entities: the installed application, Google services, and the user. This diagram illustrates the sequence:

Authorization process

  1. When the third-party application needs to access a user's Google service, it retrieves the user's login name and password.
  2. The third-party application then makes a ClientLogin call to Google's Authorization service.
  3. If the Google Authorization service decides additional vetting is necessary, it returns failure response with a CAPTCHA token and challenge, in the form of a URL for a CAPTCHA image.
  4. If a CAPTCHA challenge is received, the third-party application displays the CAPTCHA image for the user and solicits an answer from the user.
  5. If requested, the user submits an answer to the CAPTCHA challenge.
  6. The third-party application makes a new ClientLogin call, this time including the CAPTCHA answer and token (received with the failure response).
  7. On a successful login attempt (with or without CAPTCHA challenge), the Google Authorization service returns a token to the application.
  8. The application contacts the Google service with a request for data access, referencing the token received from the Google Authorization service.
  9. If the Google service recognizes the token, it supplies the requested data access.

Using ClientLogin

Use this interface in your installed application to programmatically access a user's Google account. After collecting login information from the user, call ClientLogin to request access to the user's account. Once the login information has been successfully authenticated, Google returns a token, which your application will reference each time it requests access to the user's account. The token remains valid for a set length of time, which is defined by whichever Google service you're working with.

Incorporating ClientLogin into your application requires these tasks:

  1. Create a UI element to capture login data from the user.

    The UI needs to solicit a user name (email address including domain) and password. The UI should also be capable of displaying a CAPTCHA image using the URL received from Google, if one is required, and soliciting a correct answer from the user. Ideally, your UI will include a link to Google Accounts login page ("https://www.google.com/accounts/Login") in the event that the user needs to sign up for a new account or do other account maintenance.

  2. Write code to generate a well-formed HTTPS POST ClientLogin request and transmit it.

    This code needs to contain logic to handle a CAPTCHA challenge and include both the logintoken and logincaptcha parameters. The application should also be able to detect when the user omits required information--or repeats incorrect data after a login failure--and display an error without sending a superfluous request.

  3. Handle responses from Google.

    There are four possible responses to a login request:

    • success (an HTTP 200)
    • failure (an HTTP 403) with an explanatory error code
    • invalid request, generally resulting from a malformed request
    • failure with a CAPTCHA challenge

    A success response contains an authorization token labeled "Auth". This token must be included in all subsequent requests to the Google service for this account. Authorization tokens should be closely guarded and should not be given to any other application, as they represent access to the user's account. The time limit on the token varies depending on which service issued it.

    A failure response includes one or more error codes and a URL with the error message that can be displayed for the user. Please note that ClientLogin does not differentiate between a failure due to an incorrect password or one due to an unrecognized user name (for example, if the user has not yet signed up for an account). Your application needs to handle all possible error messages as appropriate.

    A failure response with a CAPTCHA challenge means that Google has decided, for whatever reason, that additional security measures should be taken. This response is accompanied by a CAPTCHA image URL and a token representing the specific CAPTCHA challenge.

  4. Handle a CAPTCHA challenge from Google.

    To handle the challenge, the application must display the CAPTCHA image and solicit an answer from the user. To display the CAPTCHA image, use the value of CaptchaUrl returned with the failure response, prefixing it with the Google Accounts URL: "http://www.google.com/accounts/". Once the user provides an answer, the application should resend the login request, this time including the CAPTCHA token ( logintoken ) and the user's answer ( logincaptcha ). Google validates the user's answer before authorizing access to the account.

    There is an alternative for developers who do not want to manage the process's of getting and transmitting a user CAPTCHA response. In response to a CAPTCHA challenge, the application can direct the user to the Google hosted page: "https://www.google.com/accounts/DisplayUnlockCaptcha". Once the user has successfully responded to the challenge, the Google server trusts the computer in use. The application can then resend the original login request to obtain the authorization token.

  5. Note: Google does not validate the login attempt prior to issuing a CAPTCHA challenge. This means a login attempt could fail even after a CAPTCHA challenge.

* CAPTCHA is a trademark of Carnegie Mellon University

উপরে ফিরে যাও

Authentication for Gadgets

OAuth Proxy

If you're building a gadget using the standard Gadgets API , you can leverage a feature of the gadget platform called the OAuth Proxy to access the Google Data APIs. OAuth ( described above ) is an authentication standard that allows users to access their private data in a gadget hosting service such as iGoogle, MySpace, or Orkut, or share their data with another website or gadget. The OAuth Proxy is designed to make development easier for gadget developers by hiding many of OAuth's authentication details. The Proxy is based on an open-source project called Shindig , which is an implementation of the gadget specification.

Note : The OAuth Proxy is only supported for gadgets that use the gadgets.* API and run in OpenSocial containers. It is not supported for the legacy gadgets API .

Authentication flow

Your gadget must obtain an OAuth token before it can access a user's data. The OAuth Proxy manages the authentication flow for you. The first time a user installs your gadget, the following process takes place:

  1. Your gadget loads for the first time and attempts to access the user's data using one of the Google Data APIs.
  2. The request fails because the user hasn't granted access. The response object contains a URL (in response.oauthApprovalUrl ) for the OAuth approval page. Your gadget should provide a method to launch a new window with that URL.
  3. On the approval page, the user chooses to grant or deny access to your gadget. If successful, the user is taken to the oauth_callback page you specify. For the best user experience, use http://oauth.gmodules.com/gadgets/oauthcallback .
  4. Next, the user closes the popup window. To notify your gadget that the user has approved, you can use a popup handler to detect the approval window closing. Alternatively, your gadget can display a link (eg " I've approved access ") for the user to click after this window closes.
  5. Your gadget attempts to access the Google Data API a second time by re-requesting the user's data. This attempt is successful.
  6. Your gadget is authenticated and can begin operating normally.

Gadget setup

To access one or more of the Google Data APIs, you first need to tell your gadget to use OAuth as the authentication method. Add an <OAuth> element in the <ModulePrefs> section of your gadget's XML:

<ModulePrefs>
...
<OAuth>
  <Service name="google">
    <Access url="https://www.google.com/accounts/OAuthGetAccessToken" method="GET" />
    <Request url="https://www.google.com/accounts/OAuthGetRequestToken?
                  scope=http://www.blogger.com/feeds/%20http://www.google.com/calendar/feeds/" method="GET" />
    <Authorization url="https://www.google.com/accounts/OAuthAuthorizeToken?
                        oauth_callback=http://oauth.gmodules.com/gadgets/oauthcallback" />
  </Service>
</OAuth>
...
</ModulePrefs>

In this section, only change the following query parameters:

scope
A required parameter in the Request URL. Your gadget can access data from the scope (s) used in this parameter. In this example, the gadget can access Blogger and Calendar data. A gadget can request data for a single scope or multiple scopes, as this example does.
oauth_callback
An optional parameter in the Authorization URL. The OAuth approval page redirects to this URL after the user has approved access to data. You should set this parameter to http://oauth.gmodules.com/gadgets/oauthcallback to provide the best user experience when users install your gadget. That page provides a snippet of JavaScript that automatically closes the popup window. Alternatively, you can set this parameter to point to your own "approved" page, or you can simply leave the parameter blank.

Accessing an authenticated Google Data API feed

Once your gadget has authenticated the user, accessing a Google Data API is straightforward with the Google Data APIs JavaScript client library. For information on how to use the library in the OAuth Proxy, see Using the JavaScript Client Library .

More information about Gadgets

For complete information on creating Google Data API Gadgets, including details on the OAuth Proxy, an article on how to get started, and the gadgets.* spec, see these additional resources:

উপরে ফিরে যাও