แรงจูงใจ
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 จะใช้การอัปเดตนี้เพื่อส่งการแจ้งเตือนสถานะแพ็กเกจให้ผู้ใช้ได้
คำอธิบาย API
รูปที่ 3 การโต้ตอบระหว่าง GTAF กับ DPA เมื่อ DPA แชร์สถานะแพ็กเกจอินเทอร์เน็ตกับ GTAF
แอปพลิเคชันจะรับข้อมูลสถานะแพ็กเกจอินเทอร์เน็ตที่แชร์กับ GTAF ได้ 2 วิธีดังนี้
- UE เรียกใช้ GTAF เพื่อขอข้อมูลสถานะแพ็กเกจเน็ต
- DPA ของผู้ให้บริการใช้ Data Plan Sharing API เพื่อส่งสถานะแพ็กเกจอินเทอร์เน็ตของผู้ใช้ไปยัง GTAF GTAF จะจัดเก็บสถานะแพ็กเกจและคีย์ผู้ใช้ที่เชื่อมโยงจนกว่าจะถึงเวลาหมดอายุที่ผู้ให้บริการระบุ
- แอปพลิเคชันของ Google ที่ทำงานบน UE จะขอข้อมูลสถานะแพ็กเกจอินเทอร์เน็ต โดยใช้ API ภายในของ Google แอปพลิเคชันมีคีย์ผู้ใช้ในคำขอ
- หากแอปพลิเคชันใช้สถานะแพ็กเกจอินเทอร์เน็ตที่แคชไว้ได้ GTAF จะใช้คีย์ผู้ใช้เพื่อค้นหาสถานะแพ็กเกจอินเทอร์เน็ตของผู้ใช้ จากนั้น GTAF จะส่งคืน สถานะนี้ไปยังแอปพลิเคชัน
- GTAF จะพุชข้อมูลสถานะแพ็กเกจอินเทอร์เน็ตไปยัง UE ดังนี้
- เมื่อเกี่ยวข้อง ระบบจะพุชสถานะแพ็กเกจอินเทอร์เน็ตที่ได้รับจากผู้ให้บริการไปยัง UE โดยตรง โดยเฉพาะอย่างยิ่ง สถานะแพ็กเกจที่พุชจะใช้เพื่อ อัปเดตแคชในอุปกรณ์ของโมดูลแพ็กเกจอินเทอร์เน็ตมือถือในบริการ Google Play
การแชร์สถานะแพ็กเกจอินเทอร์เน็ต
DPA ใช้ HTTPS POST เพื่อสร้างและอัปเดตรายการสถานะแพ็กเกจที่มีอยู่ สำหรับผู้ใช้เพื่อให้ไคลเอ็นต์ใช้งาน ปัจจุบัน GTAF รองรับ mobiledataplan และ youtube เป็นตัวระบุไคลเอ็นต์ที่ถูกต้อง ต่อไปนี้คือตัวอย่างคำขอสำหรับ ผู้ให้บริการที่มี ASN 12345 และคีย์ผู้ใช้ abcdef ซึ่งแชร์ข้อมูลแพ็กเกจกับ GTAF สำหรับไคลเอ็นต์ youtube
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 จะแสดงรหัสการตอบกลับ HTTP 200 และรายการ planStatus ที่ส่งพร้อมรายการการแจ้งเตือน หากมีการส่งการแจ้งเตือนให้ผู้ใช้ หาก GTAF พบปัญหาเกี่ยวกับคำขอ ระบบจะแสดงรหัสสถานะ HTTP ในช่วง 400-499 หาก GTAF ดำเนินการตามคำขอไม่สำเร็จเนื่องจากข้อบกพร่องของ GTAF ทาง GTAF จะแสดงรหัส HTTP ในช่วง 500-599 คำขอที่ได้รับการตอบกลับในช่วง 500-599 ถือว่าลองใหม่ได้ และคำขอที่ได้รับการตอบกลับในช่วง 400-499 โดยทั่วไปจะลองใหม่ไม่ได้ กรณีข้อผิดพลาดจะอธิบายการตอบกลับข้อผิดพลาดจาก GTAF โดยละเอียด
การพุชสถานะแผนสำหรับไคลเอ็นต์เริ่มต้น
GTAF รองรับการเรียกต่อไปนี้ซึ่งผู้ให้บริการจะพุชสถานะแพ็กเกจโดย ไม่ต้องระบุไคลเอ็นต์ที่ใช้ได้ ในกรณีนี้ เราจะถือว่าสถานะแพ็กเกจมีไว้สำหรับไคลเอ็นต์ mobiledataplan และผู้ให้บริการตั้งใจที่จะส่งการแจ้งเตือนไปยังผู้ใช้ เนื้อหาของคำขอคืออินสแตนซ์ของ PlanStatus
POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef
การทำให้เป็นสากล
เพื่อให้รองรับการใช้งานในระดับสากล DPA ต้องทราบภาษาที่ผู้ใช้ต้องการ แม้ว่าจะไม่มีคำขอโดยตรงจาก GTAF ก็ตาม หากต้องการแก้ไขปัญหานี้ คำขอไปยังปลายทาง CPID อาจมีส่วนหัว Accept-Language ทั้งนี้ขึ้นอยู่กับการเข้าถึงค่ากำหนดภาษาของผู้ใช้ของไคลเอ็นต์ หากมีส่วนหัว สตริงที่มนุษย์อ่านได้ในการอัปเดตที่ DPA ส่งโดยใช้ MDP API ต้องใช้ การตั้งค่าที่ระบุไว้ในคำขอ CPID
DPA อาจอัปเดตค่ากำหนดภาษาของผู้ใช้เมื่อได้รับคำขอจาก GTAF ที่มีส่วนหัว Accept-Language และใช้ค่ากำหนดของผู้ใช้ที่อัปเดตแล้วเพื่อกำหนด รหัสภาษาในคำขอในอนาคตที่ส่งไปยัง GTAF
DPA ต้องระบุภาษาที่ใช้สำหรับสตริงที่ผู้ใช้มองเห็นได้โดยใช้ languageCode GTAF ใช้ข้อมูลนี้เพื่อสร้างชื่อและเนื้อหาของการแจ้งเตือนที่แสดงต่อผู้ใช้