API การแชร์แผนข้อมูลโทรศัพท์มือถือของ Google

แรงจูงใจ

Google Mobile Data Plan Sharing API ช่วยให้ผู้ให้บริการส่งข้อมูล เกี่ยวกับแพ็กเกจอินเทอร์เน็ตของผู้ใช้ (ระบุโดยคีย์ผู้ใช้) ไปยัง GTAF ได้ ในหน้านี้ เราจะอธิบายกลไกที่ใช้ในการส่งการอัปเดตเหล่านี้ ไปยัง GTAF และแอปพลิเคชันของ Google ปัจจุบัน API อนุญาตให้ DPA ส่งสถานะแพ็กเกจอินเทอร์เน็ตไปยัง GTAF เพื่อให้ไคลเอ็นต์ของ Google ใช้ได้

การตรวจสอบสิทธิ์

คำขอทั้งหมดของ Data Plan Sharing API ไปยัง GTAF ต้องได้รับการตรวจสอบสิทธิ์โดยใช้เซิร์ฟเวอร์ Google Cloud OAuth2 คำขอต้องได้รับการตรวจสอบสิทธิ์ในฐานะบัญชีบริการที่ได้รับอนุญาตในพอร์ทัล ISP สำหรับ ASN ที่ DPA เป็นตัวแทน ดูเอกสารประกอบเกี่ยวกับวิธีใช้ OAuth กับบัญชีบริการ Google Cloud ได้ที่Google Cloud OAuth 2.0 สำหรับบัญชีบริการ

ข้อมูลอัปเดตเกี่ยวกับแพ็กเกจอินเทอร์เน็ต

ปัจจุบัน Google Mobile Data Plan Sharing API อนุญาตให้ผู้ให้บริการแชร์ ข้อมูลอัปเดตเกี่ยวกับแพ็กเกจอินเทอร์เน็ตของผู้ใช้ได้ดังนี้

  • สถานะแพ็กเกจอินเทอร์เน็ต: บันทึกสถานะปัจจุบันของแพ็กเกจอินเทอร์เน็ตของผู้ใช้ ตัวอย่างเช่น หากผู้ใช้ใช้ข้อมูลใกล้หมด ผู้ให้บริการสามารถส่งการอัปเดตสถานะแพ็กเกจอินเทอร์เน็ตไปยัง GTAF ซึ่ง GTAF จะใช้ข้อมูลดังกล่าวเพื่อส่งการแจ้งเตือนยอดเงินเหลือน้อยให้ผู้ใช้ได้

การระบุผู้ใช้ที่เกี่ยวข้อง

DPA ต้องมีวิธีระบุข้อมูลของผู้ใช้ที่จะส่งไปยัง GTAF GTAF คาดว่าจะได้รับข้อมูลอัปเดตสำหรับผู้ใช้ต่อไปนี้

  1. CPID ที่ใช้งานอยู่: ผู้ใช้ที่มี CPID ที่ใช้งานอยู่ จนกว่า CPID ที่สร้างโดยปลายทาง CPID จะถูกต้อง DPA ควรส่งข้อมูลอัปเดตเกี่ยวกับแพ็กเกจอินเทอร์เน็ตของผู้ใช้ หากตั้งค่าส่วนหัว Accept-Language ไว้ในขณะที่สร้าง CPID สตริงที่มนุษย์อ่านได้ในสถานะแพ็กเกจข้อมูลจะต้องเป็นภาษาดังกล่าว
  2. MSISDN ที่ลงทะเบียน: เพื่อให้บริการแอปพลิเคชันที่มีสิทธิ์เข้าถึง MSISDN, GTAF จะลงทะเบียน MSISDN กับ DPA ตามที่อธิบายไว้ในส่วนการลงทะเบียน msisdn ของ Data Plan Agent API เมื่อลงทะเบียน MSISDN แล้ว DPA ควรส่งข้อมูลอัปเดตเกี่ยวกับ แพ็กเกจอินเทอร์เน็ตของผู้ใช้จนกว่าการลงทะเบียนจะหมดอายุ

คำอธิบาย API

การแชร์สถานะแพ็กเกจอินเทอร์เน็ต

รูปที่ 3 การโต้ตอบระหว่าง GTAF กับ DPA เมื่อ DPA แชร์สถานะแพ็กเกจอินเทอร์เน็ตกับ GTAF

แอปพลิเคชันรับข้อมูลสถานะแพ็กเกจอินเทอร์เน็ตได้ 2 วิธี ดังนี้

  1. UE เรียกใช้ GTAF เพื่อขอข้อมูลสถานะแพ็กเกจเน็ต
    1. DPA ของผู้ให้บริการใช้ Data Plan Sharing API เพื่อส่งสถานะแพ็กเกจอินเทอร์เน็ตของผู้ใช้ไปยัง GTAF GTAF จะจัดเก็บสถานะแพ็กเกจและคีย์ผู้ใช้ที่เชื่อมโยง
    2. แอปพลิเคชันของ Google ที่ทำงานบน UE จะขอข้อมูลสถานะแพ็กเกจอินเทอร์เน็ต โดยใช้ API ภายในของ Google แอปพลิเคชันมีคีย์ผู้ใช้ในคำขอ
    3. หากแอปพลิเคชันใช้สถานะแพ็กเกจอินเทอร์เน็ตที่แคชไว้ได้ GTAF จะใช้คีย์ผู้ใช้เพื่อค้นหาสถานะแพ็กเกจอินเทอร์เน็ตของผู้ใช้ จากนั้น GTAF จะส่งคืนสถานะนี้ไปยัง UE
  2. GTAF จะพุชข้อมูลสถานะแพ็กเกจอินเทอร์เน็ตไปยัง UE ดังนี้
    1. เมื่อเกี่ยวข้อง ระบบจะพุชสถานะแพ็กเกจอินเทอร์เน็ตที่ได้รับจากผู้ให้บริการไปยัง UE โดยตรง

การโต้ตอบระหว่าง GTAF กับ DPA

DPA ใช้ HTTPS POST เพื่อสร้างและอัปเดตรายการสถานะแพ็กเกจที่มีอยู่ สำหรับผู้ใช้เพื่อให้ไคลเอ็นต์ใช้งาน ปัจจุบัน GTAF รองรับ mobiledataplan และ youtube เป็นตัวระบุไคลเอ็นต์ที่ถูกต้อง ต่อไปนี้คือตัวอย่างคำขอสำหรับ ผู้ให้บริการที่มี ASN 12345 และคีย์ผู้ใช้ abcdef ซึ่งแชร์ข้อมูลแพ็กเกจกับ GTAF สำหรับไคลเอ็นต์ youtube

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 จะแสดงรหัสการตอบกลับ HTTP 200 และรายการ planStatus ที่ส่งพร้อมรายการการแจ้งเตือน หากมีการส่งการแจ้งเตือนให้ผู้ใช้ หาก GTAF พบปัญหาเกี่ยวกับคำขอ ระบบจะแสดงรหัสสถานะ HTTP ในช่วง 400-499 หาก GTAF ดำเนินการตามคำขอไม่สำเร็จเนื่องจากข้อบกพร่องของ GTAF ทาง GTAF จะแสดงรหัส HTTP ในช่วง 500-599 คำขอที่ได้รับการตอบกลับในช่วง 500-599 ถือว่าลองใหม่ได้ และคำขอที่ได้รับการตอบกลับในช่วง 400-499 โดยทั่วไปจะลองใหม่ไม่ได้

การพุชสถานะแผนสำหรับไคลเอ็นต์เริ่มต้น

GTAF ยังคงรองรับการเรียกใช้ต่อไปนี้ในกรณีที่ผู้ให้บริการส่งสถานะแพ็กเกจโดยไม่ต้องระบุไคลเอ็นต์ที่ใช้ได้ ในกรณีนี้ เราถือว่าสถานะแพ็กเกจมีไว้สำหรับไคลเอ็นต์ mobiledataplan และผู้ให้บริการต้องการส่งการแจ้งเตือนไปยังผู้ใช้ เนื้อหาคำขอจะเหมือนกันสำหรับกรณีการใช้งานต่อไคลเอ็นต์และกรณีการใช้งานไคลเอ็นต์เริ่มต้น

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

การทำให้เป็นสากล

เพื่อให้รองรับการใช้งานในระดับสากล DPA ต้องทราบภาษาที่ผู้ใช้ต้องการ แม้ว่าจะไม่มีคำขอโดยตรงจาก GTAF ก็ตาม หากต้องการแก้ไขปัญหานี้ คำขอไปยังปลายทาง CPID อาจมีส่วนหัว Accept-Language หากมี ส่วนหัว สตริงที่มนุษย์อ่านได้ในการอัปเดตที่ DPA ส่ง โดยใช้ MDP API ต้องใช้การตั้งค่าที่ระบุในคำขอ CPID