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 को भेजना है. GTAF को इन उपयोगकर्ताओं के लिए अपडेट मिलने चाहिए:

  1. चालू सीपीआईडी: ऐसे उपयोगकर्ता जिनके पास चालू सीपीआईडी हैं. जब तक सीपीआईडी एंडपॉइंट से जनरेट किए गए सीपीआईडी मान्य हैं, तब तक डीपीए को उपयोगकर्ता के डेटा प्लान के बारे में अपडेट भेजने चाहिए. अगर सीपीआईडी बनाते समय Accept-Language हेडर सेट किया गया था, तो डेटा प्लान की स्थिति में मौजूद ऐसी स्ट्रिंग जो इंसानों को आसानी से समझ में आ सकती हैं, उसी भाषा में होनी चाहिए.
  2. रजिस्टर्ड एमएसआईएसडीएन: जिन ऐप्लिकेशन के पास एमएसआईएसडीएन का ऐक्सेस है उन्हें सेवा देने के लिए, GTAF, एमएसआईएसडीएन को DPA के साथ रजिस्टर करेगा. ऐसा Data Plan Agent API के एमएसआईएसडीएन रजिस्ट्रेशन सेक्शन में बताए गए तरीके से किया जाएगा. एमएसआईएसडीएन रजिस्टर होने के बाद, डीपीए को उपयोगकर्ता के डेटा प्लान के बारे में अपडेट भेजने चाहिए. ऐसा तब तक करना चाहिए, जब तक रजिस्ट्रेशन की समयसीमा खत्म नहीं हो जाती.

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

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

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

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

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

GTAF-DPA इंटरैक्शन

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

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

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

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

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

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

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