Ambient API ব্যবহার শুরু করা

Ambient API আপনার অ্যাপ্লিকেশনকে কোনও ব্যবহারকারীর Google Photos অ্যাকাউন্টের সাথে অ্যাম্বিয়েন্ট ডিভাইস কানেক্ট করতে এবং তার বেছে নেওয়া ফটো দেখাতে সাহায্য করে।

অ্যাম্বিয়েন্ট API ফ্লো

Ambient API কীভাবে কাজ করে তার একটি ব্রেকডাউন এখানে দেওয়া হল, যার মাধ্যমে একটি ডিভাইস কানেক্ট করা যায় এবং তারপর মিডিয়া আইটেমগুলি ফিরিয়ে আনা এবং প্রদর্শন করা যায়:

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

  2. OAuth 2.0 অনুমোদন শুরু করুন: একটি অনুমোদন কোডের অনুরোধ করে টিভি এবং সীমিত ইনপুট ডিভাইসের জন্য OAuth 2.0 ফ্লো শুরু করুন।

  3. নতুন ডিভাইস তৈরি করা: আপনার অ্যাপ, CreateDevice কল করে এবং একটি বৈধ v4 UUID প্রদান করে, ব্যবহারকারীর Google Photos অ্যাকাউন্টে একটি ডিভাইস তৈরি করে।

    ডিভাইস তৈরি করা হয়ে গেলে, API একটি AmbientDevice অবজেক্ট ফিরিয়ে দেবে যেটিতে Google-এর অ্যাসাইন করা deviceId থাকবে। আপনার অ্যাপ্লিকেশনের জন্য এই deviceId স্টোর করা এবং আপনার ব্যবহারকারীদের সাথে এটি অ্যাসোসিয়েট করা খুবই গুরুত্বপূর্ণ।

  4. settingsUri দেখান: একটি AmbientDevice অবজেক্টে একটি settingsUri অন্তর্ভুক্ত থাকে। ব্যবহারকারীকে এই URI দেখান, সাধারণত QR কোড হিসেবে, যা ব্যবহারকারী তার মোবাইল ডিভাইস ব্যবহার করে স্ক্যান করতে পারবেন। এই URI ব্যবহারকারীকে Google Photos অ্যাপে নিয়ে যায়, যেখানে তিনি অ্যাম্বিয়েন্ট ডিভাইসে যে মিডিয়া সোর্স (যেমন, অ্যালবাম) দেখাতে চান তা কনফিগার করতে পারেন।

  5. mediaSourcesSet-এর জন্য পোল: আপনার অ্যাপ্লিকেশনকে নির্দিষ্ট সময় অন্তর GetDevice পদ্ধতি কল করতে হবে, deviceId প্রদান করতে হবে, যাতে অ্যাম্বিয়েন্ট ডিভাইসের স্ট্যাটাস চেক করা যায়। উত্তরে AmbientDevice mediaSourcesSet ফিল্ড মনিটর করুন। এটি প্রাথমিকভাবে মিথ্যা হবে।

    ব্যবহারকারী Google Photos অ্যাপে মিডিয়া সোর্স বেছে নিলে, এই ফিল্ডের মান পরিবর্তন করে 'true' করা হবে।

    AmbientDevice উত্তরে একটি pollingConfig সহ pollInterval অন্তর্ভুক্ত রয়েছে যা আপনার পোলিং ফ্রিকোয়েন্সির জন্য নির্দেশিকা হিসেবে ব্যবহার করা উচিত।

  6. মিডিয়া আইটেম রিট্রিভ করা: mediaSourcesSet true রিটার্ন করলে, আপনার অ্যাপ্লিকেশন ব্যবহারকারীর বেছে নেওয়া মিডিয়া আইটেম ফেচ করা শুরু করতে পারে।

    deviceId প্রদান করে ListMediaItems মেথড কল করুন। API, AmbientMediaItem অবজেক্টের তালিকা সহ ListMediaItemsResponse ফেরত পাঠাবে। প্রতিটি AmbientMediaItem-এ id, createTime এবং অতিরিক্ত মেটাডেটা সহ MediaFile অবজেক্টের মতো বিবরণ থাকে। MediaFile-এ একটি baseUrl থাকে যা আপনি কোনও মিডিয়া আইটেমের আসল বাইট ফেচ করার জন্য ব্যবহার করতে পারবেন। অতিরিক্ত baseUrl প্যারামিটার সম্পর্কে বিস্তারিত জানতে মিডিয়া আইটেম তালিকাভুক্ত ও ফিরিয়ে আনা সংক্রান্ত নির্দেশিকা পর্যালোচনা করুন।

  7. মিডিয়া আইটেম দেখানো: অ্যাম্বিয়েন্ট ডিভাইসে মিডিয়া কন্টেন্ট ডাউনলোড করতে ও দেখাতে MediaFile থেকে baseUrl ব্যবহার করুন।

গুরুত্বপূর্ণ বিষয়

ডিভাইসের সীমা ও ম্যানেজমেন্ট:

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

ডিভাইস তৈরি ও ম্যানেজ করা সংক্রান্ত নির্দেশিকায় অতিরিক্ত বিবরণ দেওয়া আছে।

মিডিয়া আইটেম নিয়ে কাজ করা:

  • মিডিয়া আইটেমের ব্যবহার: baseUrl ব্যবহার করে কীভাবে মিডিয়া আইটেমের কন্টেন্ট সঠিকভাবে ফেচ ও ম্যানেজ করতে হয় তা বুঝুন, এর মধ্যে প্রয়োজনীয় যাচাইকরণ বা প্যারামিটারও অন্তর্ভুক্ত।
  • সমস্যা ম্যানেজ করা: API কলের জন্য সমস্যা ম্যানেজ করার শক্তিশালী পদ্ধতি প্রয়োগ করুন, যার মধ্যে ডিভাইসের জন্য NOT_FOUND, মিডিয়া সোর্স সেট করা না থাকলে FAILED_PRECONDITION এবং ডিভাইসের সীমা শেষ হয়ে গেলে RESOURCE_EXHAUSTED-এর মতো পরিস্থিতি অন্তর্ভুক্ত।

মিডিয়া আইটেম তালিকাভুক্ত করা ও ফিরিয়ে আনা সংক্রান্ত গাইডে অতিরিক্ত বিবরণ আছে, যার মধ্যে কন্টেন্ট নীতি ও ফিল্টার করা সংক্রান্ত তথ্যও আছে।

পরবর্তী ধাপ