Google মোবাইল ডেটা প্ল্যান শেয়ারিং API

প্রেরণা

Google মোবাইল ডেটা প্ল্যান শেয়ারিং API একটি অপারেটরকে একটি ব্যবহারকারীর ( ব্যবহারকারী কী দ্বারা চিহ্নিত) ডেটা প্ল্যান সম্পর্কে তথ্য GTAF-এ পাঠাতে দেয়৷ এই পৃষ্ঠায়, আমরা সেই পদ্ধতির রূপরেখা দিই যার মাধ্যমে এই আপডেটগুলি GTAF এবং এর মাধ্যমে Google অ্যাপ্লিকেশনগুলিতে পুশ করা যেতে পারে। API বর্তমানে DPA-কে GTAF-এ ডেটা প্ল্যান স্ট্যাটাস পাঠাতে অনুমতি দেয় যাতে Google ক্লায়েন্ট ব্যবহার করে।

প্রমাণীকরণ

GTAF-এ সমস্ত ডেটা প্ল্যান শেয়ারিং API অনুরোধগুলি অবশ্যই Google Cloud OAuth2 সার্ভার ব্যবহার করে প্রমাণীকৃত হতে হবে। অনুরোধগুলি অবশ্যই একটি পরিষেবা অ্যাকাউন্ট হিসাবে প্রমাণীকৃত হতে হবে যা DPA প্রতিনিধিত্ব করে ASN এর জন্য ISP পোর্টালে সাদা তালিকাভুক্ত করা হয়েছে। Google ক্লাউড পরিষেবা অ্যাকাউন্টগুলির সাথে কীভাবে OAuth ব্যবহার করতে হয় তার ডকুমেন্টেশনের জন্য পরিষেবা অ্যাকাউন্টগুলির জন্য Google Cloud OAuth 2.0 দেখুন৷

ডেটা প্ল্যান আপডেট

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

  • ডেটা প্ল্যান স্ট্যাটাস: ব্যবহারকারীর ডেটা প্ল্যানের বর্তমান অবস্থা ক্যাপচার করে। উদাহরণস্বরূপ, যদি একজন ব্যবহারকারীর ডেটা ফুরিয়ে যায়, তাহলে একজন অপারেটর GTAF-এ ডেটা প্ল্যান স্ট্যাটাস আপডেট করতে পারে যা GTAF ব্যবহার করে ব্যবহারকারীকে কম ব্যালেন্স বিজ্ঞপ্তি পাঠাতে পারে।

প্রাসঙ্গিক ব্যবহারকারীদের সনাক্তকরণ

কোন ব্যবহারকারীর ডেটা GTAF-এ পাঠাতে হবে তা নির্ধারণ করার জন্য DPA-এর একটি উপায় প্রয়োজন। GTAF নিম্নলিখিত ব্যবহারকারীদের জন্য আপডেট পাওয়ার আশা করে:

  1. সক্রিয় CPID : সক্রিয় CPID সহ ব্যবহারকারী। যতক্ষণ না CPID এন্ডপয়েন্ট দ্বারা তৈরি করা CPIDগুলি বৈধ হয়, DPA-কে ব্যবহারকারীর ডেটা প্ল্যান সম্পর্কে আপডেট পাঠাতে হবে। যদি Accept-Language হেডারটি CPID তৈরির সময় সেট করা থাকে, তাহলে ডেটা প্ল্যান স্ট্যাটাসে মানুষের পঠনযোগ্য স্ট্রিংগুলি অবশ্যই সেই ভাষায় থাকতে হবে।
  2. নিবন্ধিত MSISDN: MSISDN-এ অ্যাক্সেস আছে এমন অ্যাপ্লিকেশনগুলিকে পরিবেশন করার জন্য, GTAF ডেটা প্ল্যান এজেন্ট API-এর msisdn নিবন্ধন বিভাগে বর্ণিত হিসাবে DPA-এর সাথে MSISDN নিবন্ধন করবে। একবার MSISDN নিবন্ধিত হয়ে গেলে, নিবন্ধনের মেয়াদ শেষ না হওয়া পর্যন্ত DPA ব্যবহারকারীর ডেটা প্ল্যান সম্পর্কে আপডেট পাঠাতে হবে।

API বর্ণনা

শেয়ারিং ডেটা প্ল্যান স্ট্যাটাস

চিত্র 3. GTAF-DPA ইন্টারঅ্যাকশন যখন DPA GTAF-এর সাথে ডেটা প্ল্যান স্ট্যাটাস শেয়ার করে।

অ্যাপ্লিকেশন দুটি উপায়ে ডেটা প্ল্যান স্ট্যাটাস তথ্য পেতে পারে:

  1. UE ডেটা প্ল্যান স্ট্যাটাস তথ্যের জন্য GTAF কল করে:
    1. অপারেটরের ডিপিএ ডেটা প্ল্যান শেয়ারিং এপিআই ব্যবহার করে ব্যবহারকারীর ডেটা প্ল্যান স্ট্যাটাস জিটিএএফ-এ পুশ করতে। GTAF প্ল্যান স্ট্যাটাস এবং এর সাথে যুক্ত ইউজার কী সংরক্ষণ করে।
    2. UE-তে চলমান Google অ্যাপ্লিকেশন একটি Google-অভ্যন্তরীণ API ব্যবহার করে ডেটা প্ল্যান স্ট্যাটাস তথ্যের জন্য অনুরোধ করে। অ্যাপ্লিকেশনটি তার অনুরোধে ব্যবহারকারী কী অন্তর্ভুক্ত করে।
    3. যদি অ্যাপ্লিকেশনটি ক্যাশ করা ডেটা প্ল্যানের স্থিতি ব্যবহার করতে পারে তবে GTAF ব্যবহারকারীর ডেটা প্ল্যানের স্থিতি দেখতে ব্যবহারকারী কী ব্যবহার করে। GTAF তারপর UE-তে এই স্ট্যাটাস ফিরিয়ে দেয়।
  2. GTAF ডেটা প্ল্যান স্ট্যাটাস তথ্য UE-তে পুশ করে:
    1. প্রাসঙ্গিক হলে, অপারেটর থেকে প্রাপ্ত ডেটা প্ল্যান স্ট্যাটাস সরাসরি UE-তে পাঠানো হয়।

GTAF-DPA ইন্টারঅ্যাকশন

একটি ক্লায়েন্ট দ্বারা ব্যবহার করার জন্য ব্যবহারকারীর জন্য একটি বিদ্যমান প্ল্যান স্ট্যাটাস এন্ট্রি তৈরি এবং আপডেট করতে DPA একটি HTTPS পোস্ট ব্যবহার করে। বর্তমানে GTAF বৈধ ক্লায়েন্ট শনাক্তকারী হিসাবে মোবাইল ডেটাপ্ল্যান এবং ইউটিউব সমর্থন করে। এখানে asn 12345 সহ অপারেটরের জন্য একটি উদাহরণ অনুরোধ এবং ইউটিউব ক্লায়েন্টের জন্য GTAF এর সাথে ব্যবহারকারী কী abcdef শেয়ারিং প্ল্যান তথ্য রয়েছে:

পোস্ট https://mobiledataplansharing.googleapis.com/v1/operators/12345/clients/youtube/users/abcdef/planStatus

{
  "plans": [{
    "planName": "ACME1",
    "planId": "1",
    "planCategory": "PREPAID",
    "expirationTime": "2017-01-29T01:00:03.14159Z", // req.
    "planModules": [{
      "moduleName": "Giga Plan", // req.
      "trafficCategories": ["GENERIC"],
      "expirationTime": "2017-01-29T01:00:03.14159Z", // req.
      "overUsagePolicy": "BLOCKED",
      "maxRateKbps": "1500",
      "description": "1GB for a month", // req.
      "coarseBalanceLevel": "HIGH_QUOTA"
    }]
  }],
  "planInfoPerClient": {
    "youtube": {
      "rateLimitedStreaming": {
        "maxMediaRateKbps": 569
      }
    }
  },
  "languageCode": "en-US", // req.
  "expireTime": "2018-06-14T08:41:27-07:00", // req.
  "updateTime": "2018-06-07T07:41:22-07:00", // req.
  "title": "Prepaid Plan"
}

অনুরোধটি সফল হলে, ব্যবহারকারীকে কোনো বিজ্ঞপ্তি পাঠানো হলে GTAF HTTP প্রতিক্রিয়া কোড 200 এবং পুশ করা প্ল্যান স্ট্যাটাস এন্ট্রি একটি বিজ্ঞপ্তি এন্ট্রি সহ ফেরত দেবে। যদি GTAF অনুরোধের সাথে একটি সমস্যা চিহ্নিত করে, তাহলে এটি 400-499 রেঞ্জের মধ্যে একটি HTTP স্ট্যাটাস কোড প্রদান করবে। GTAF ত্রুটির কারণে GTAF একটি অনুরোধ সম্পূর্ণ করতে না পারলে, GTAF 500-599 রেঞ্জের মধ্যে একটি HTTP কোড ফেরত দেবে। যে অনুরোধগুলি 500-599 পরিসরে একটি প্রতিক্রিয়া পায় সেগুলি পুনরায় চেষ্টাযোগ্য বলে বিবেচিত হয় এবং যে অনুরোধগুলি 400-499 পরিসরে একটি প্রতিক্রিয়া পায় সেগুলি সাধারণত পুনরায় চেষ্টা করা যায় না৷

ডিফল্ট ক্লায়েন্টের জন্য প্ল্যান স্ট্যাটাস পুশ

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

পোস্ট https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef

আন্তর্জাতিকীকরণ

আন্তর্জাতিকীকরণকে সমর্থন করার জন্য, DPA-কে অবশ্যই GTAF-এর সরাসরি অনুরোধ ছাড়াই ব্যবহারকারীর পছন্দের ভাষা জানতে হবে। এই সমস্যা সমাধানের জন্য CPID এন্ডপয়েন্টের অনুরোধে একটি Accept-Language header অন্তর্ভুক্ত থাকতে পারে। যদি শিরোনামটি অন্তর্ভুক্ত করা হয় তবে DPA MDP API ব্যবহার করে যে আপডেটগুলি পাঠায় তাতে মানব পাঠযোগ্য স্ট্রিংগুলিকে অবশ্যই CPID অনুরোধে প্রদত্ত সেটিংস ব্যবহার করতে হবে।