Google मोबाइल डेटा प्लान शेयर करने वाला एपीआई

वजह

Google Mobile Data Plan Sharing API की मदद से, ऑपरेटर GTAF को उपयोगकर्ता के डेटा प्लान की जानकारी भेज सकता है. उपयोगकर्ता की पहचान उपयोगकर्ता के यूनीक आईडी से की जाती है. इस पेज पर, हमने उस तरीके के बारे में बताया है जिससे इन अपडेट को GTAF और इस तरह Google के ऐप्लिकेशन पर भेजा जा सकता है. फ़िलहाल, यह एपीआई डीपीए को डेटा प्लान की स्थिति की जानकारी GTAF को भेजने की अनुमति देता है, ताकि Google क्लाइंट इसका इस्तेमाल कर सके.

पुष्टि करना

GTAF को भेजे गए Data Plan Sharing API के सभी अनुरोधों की पुष्टि, Google Cloud OAuth2 सर्वर का इस्तेमाल करके की जानी चाहिए. अनुरोधों की पुष्टि, सेवा खाते के तौर पर की जानी चाहिए. इस खाते को आईएसपी पोर्टल में, उस एएसएन के लिए अनुमति मिली हो जिसका प्रतिनिधित्व डीपीए करता है. Google Cloud सेवा खातों के साथ OAuth का इस्तेमाल करने के तरीके के बारे में दस्तावेज़ देखने के लिए, Google Cloud सेवा खातों के लिए OAuth 2.0 पर जाएं.

डेटा प्लान के अपडेट

फ़िलहाल, Google Mobile Data Plan Sharing API की मदद से, ऑपरेटर किसी उपयोगकर्ता के डेटा प्लान के बारे में ये अपडेट शेयर कर सकता है:

  • डेटा प्लान की स्थिति: यह कुकी, उपयोगकर्ता के डेटा प्लान की मौजूदा स्थिति को कैप्चर करती है. उदाहरण के लिए, अगर किसी उपयोगकर्ता का डेटा खत्म होने वाला है, तो ऑपरेटर, GTAF को डेटा प्लान की स्थिति के बारे में अपडेट भेज सकता है. इसके बाद, GTAF इस अपडेट का इस्तेमाल करके, उपयोगकर्ता को प्लान की स्थिति के बारे में सूचना भेज सकता है.

एपीआई के बारे में जानकारी

तीसरी इमेज. GTAF-DPA इंटरैक्शन, जब DPA, GTAF के साथ डेटा प्लान की स्थिति शेयर करता है.

ऐप्लिकेशन, GTAF के साथ शेयर किए गए डेटा प्लान की स्थिति की जानकारी इन दो तरीकों में से किसी एक तरीके से पा सकते हैं:

  1. यूज़र इक्विपमेंट (यूई), डेटा प्लान के स्टेटस की जानकारी पाने के लिए GTAF को कॉल करता है:
    1. ऑपरेटर का डीपीए, Data Plan Sharing API का इस्तेमाल करके, उपयोगकर्ता के डेटा प्लान की स्थिति को GTAF पर भेजता है. GTAF, प्लान का स्टेटस और उससे जुड़ी उपयोगकर्ता की कुंजी को तब तक सेव करता है, जब तक ऑपरेटर ने समयसीमा खत्म होने का समय तय किया है.
    2. UE पर चल रहा Google ऐप्लिकेशन, Google के इंटरनल एपीआई का इस्तेमाल करके डेटा प्लान की स्थिति की जानकारी का अनुरोध करता है. ऐप्लिकेशन, अपने अनुरोध में उपयोगकर्ता की कुंजी शामिल करता है.
    3. अगर ऐप्लिकेशन, डेटा प्लान की स्थिति के लिए कैश मेमोरी में सेव किए गए डेटा का इस्तेमाल कर सकता है, तो GTAF, उपयोगकर्ता के यूनीक आईडी का इस्तेमाल करके, उपयोगकर्ता के डेटा प्लान की स्थिति का पता लगाता है. इसके बाद, GTAF इस स्थिति को ऐप्लिकेशन पर वापस भेज देता है.
  2. GTAF, डेटा प्लान की स्थिति की जानकारी UE को भेजता है:
    1. जब ज़रूरी हो, तब ऑपरेटर से मिला डेटा प्लान का स्टेटस सीधे तौर पर यूज़र इक्विपमेंट (यूई) को भेजा जाता है. खास तौर पर, पुश किए गए प्लान की स्थिति का इस्तेमाल, Google Play services में मोबाइल डेटा प्लान मॉड्यूल की डिवाइस पर मौजूद कैश मेमोरी को अपडेट करने के लिए किया जाता है.

डेटा शेयर करने के प्लान की स्थिति

डीपीए, एचटीटीपीएस पोस्ट का इस्तेमाल करके, किसी उपयोगकर्ता के लिए मौजूदा प्लान की स्थिति की एंट्री बनाता है और उसे अपडेट करता है. इसका इस्तेमाल क्लाइंट करता है. फ़िलहाल, GTAF, mobiledataplan और youtube को मान्य क्लाइंट आइडेंटिफ़ायर के तौर पर इस्तेमाल करता है. यहां ऑपरेटर के लिए अनुरोध का एक उदाहरण दिया गया है. इसमें एएसएन 12345 और उपयोगकर्ता कुंजी abcdef वाला ऑपरेटर, youtube क्लाइंट के लिए GTAF के साथ प्लान की जानकारी शेयर कर रहा है:

POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/clients/youtube/users/abcdef/planStatus

अनुरोध का मुख्य हिस्सा, 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, एचटीटीपी रिस्पॉन्स कोड 200 दिखाएगा. साथ ही, पुश की गई planStatus एंट्री दिखाएगा. अगर उपयोगकर्ता को कोई सूचना भेजी गई थी, तो वह सूचना भी दिखाएगा. अगर GTAF को अनुरोध में कोई समस्या मिलती है, तो वह 400 से 499 के बीच का एचटीटीपी स्टेटस कोड दिखाएगा. अगर GTAF की किसी गड़बड़ी की वजह से, GTAF अनुरोध पूरा नहीं कर पाता है, तो GTAF, 500 से 599 के बीच का एचटीटीपी कोड दिखाएगा. 500 से 599 के बीच की रेंज में जवाब पाने वाले अनुरोधों को फिर से आज़माया जा सकता है. हालांकि, 400 से 499 के बीच की रेंज में जवाब पाने वाले अनुरोधों को आम तौर पर फिर से आज़माया नहीं जा सकता. गड़बड़ी के मामले में, GTAF से मिलने वाली गड़बड़ी की प्रतिक्रियाओं के बारे में पूरी जानकारी दी गई है.

डिफ़ॉल्ट क्लाइंट के लिए प्लान का स्टेटस पुश करना

GTAF, इस कॉल के साथ काम करता है. इसमें ऑपरेटर, प्लान का स्टेटस पुश करता है. हालांकि, इसमें यह नहीं बताया जाता कि इसका इस्तेमाल किस क्लाइंट के लिए किया जा सकता है. इस मामले में, हम यह मान लेते हैं कि प्लान की स्थिति mobiledataplan क्लाइंट के लिए है और ऑपरेटर, उपयोगकर्ता को सूचना भेजना चाहता है. अनुरोध का मुख्य हिस्सा, PlanStatus का एक इंस्टेंस है

POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef

इंटरनैशनलाइजेशन

अंतरराष्ट्रीय स्तर पर काम करने के लिए, डीपीए को उपयोगकर्ता की पसंदीदा भाषा के बारे में पता होना चाहिए. भले ही, GTAF से सीधे तौर पर कोई अनुरोध न किया गया हो. इस समस्या को हल करने के लिए, CPID एंडपॉइंट के अनुरोध में Accept-Language हेडर शामिल किया जा सकता है. हालांकि, यह इस बात पर निर्भर करता है कि क्लाइंट के पास उपयोगकर्ता की भाषा की प्राथमिकताओं का ऐक्सेस है या नहीं. अगर हेडर शामिल किया गया है, तो डीपीए को एमडीपी एपीआई का इस्तेमाल करके भेजे जाने वाले अपडेट में, इंसानों के पढ़ने लायक स्ट्रिंग का इस्तेमाल करना होगा. इसके लिए, सीपीआईडी अनुरोध में दी गई सेटिंग का इस्तेमाल करना होगा.

अगर DPA को GTAF से Accept-Language हेडर के साथ कोई अनुरोध मिलता है, तो वह उपयोगकर्ता की भाषा की सेटिंग को अपडेट कर सकता है. साथ ही, अपडेट की गई सेटिंग का इस्तेमाल करके, GTAF को आने वाले समय में किए जाने वाले अनुरोधों में भाषा कोड का पता लगा सकता है.

डेटा प्रोसेसिंग समझौते (डीपीए) में, उपयोगकर्ता को दिखने वाली स्ट्रिंग के लिए इस्तेमाल की गई भाषा के बारे में बताना ज़रूरी है. इसके लिए, languageCode का इस्तेमाल करें. GTAF इसका इस्तेमाल, उपयोगकर्ता को दिखाई जाने वाली सूचनाओं का टाइटल और बॉडी बनाने के लिए करता है.