Động lực
Google Mobile Data Plan Sharing API cho phép nhà mạng gửi thông tin về gói dữ liệu của người dùng (được xác định bằng khoá người dùng) đến GTAF. Trên trang này, chúng tôi trình bày cơ chế mà qua đó những nội dung cập nhật này có thể được chuyển đến GTAF và do đó là các ứng dụng của Google. Hiện tại, API này cho phép DPA gửi trạng thái gói dữ liệu đến GTAF để một ứng dụng Google sử dụng.
Xác thực
Tất cả các yêu cầu Data Plan Sharing API đối với GTAF phải được xác thực bằng máy chủ Google Cloud OAuth2. Các yêu cầu phải được xác thực dưới dạng một tài khoản dịch vụ đã được đưa vào danh sách cho phép trong Cổng ISP cho ASN mà DPA đại diện. Hãy xem Google Cloud OAuth 2.0 cho Tài khoản dịch vụ để biết tài liệu về cách sử dụng OAuth với tài khoản dịch vụ Google Cloud.
Cập nhật về gói dữ liệu
Hiện tại, Google Mobile Data Plan Sharing API cho phép nhà mạng chia sẻ thông tin cập nhật về gói dữ liệu của người dùng:
- Trạng thái gói dữ liệu: Ghi lại trạng thái hiện tại của gói dữ liệu của người dùng. Ví dụ: nếu người dùng sắp hết dữ liệu, thì nhà mạng có thể gửi thông tin cập nhật về trạng thái gói dữ liệu đến GTAF. Sau đó, GTAF có thể dùng thông tin này để gửi thông báo về trạng thái gói cho người dùng.
Nội dung mô tả API
Hình 3. Tương tác GTAF-DPA khi DPA chia sẻ trạng thái gói dữ liệu với GTAF.
Các ứng dụng có thể nhận thông tin trạng thái gói dữ liệu được chia sẻ với GTAF theo một trong hai cách:
- UE gọi GTAF để biết thông tin về trạng thái gói dữ liệu:
- DPA của nhà mạng sử dụng Data Plan Sharing API để gửi trạng thái gói dữ liệu của người dùng đến GTAF. GTAF lưu trữ trạng thái kế hoạch và khoá người dùng được liên kết cho đến thời gian hết hạn do nhà điều hành chỉ định.
- Ứng dụng Google chạy trên UE yêu cầu thông tin về trạng thái gói dữ liệu bằng cách sử dụng một API nội bộ của Google. Ứng dụng sẽ thêm khoá người dùng vào yêu cầu.
- Nếu ứng dụng có thể sử dụng trạng thái gói dữ liệu được lưu vào bộ nhớ đệm, thì GTAF sẽ dùng khoá người dùng để tra cứu trạng thái gói dữ liệu của người dùng. Sau đó, GTAF sẽ trả về trạng thái này cho ứng dụng.
- GTAF chuyển thông tin về trạng thái gói dữ liệu đến UE:
- Khi có liên quan, trạng thái gói dữ liệu nhận được từ nhà mạng sẽ được chuyển trực tiếp đến UE. Cụ thể, trạng thái gói được truyền qua sẽ dùng để cập nhật bộ nhớ đệm trên thiết bị của mô-đun Gói dữ liệu di động trong Dịch vụ Google Play.
Trạng thái chia sẻ gói dữ liệu
DPA sử dụng yêu cầu POST qua HTTPS để tạo và cập nhật một mục trạng thái kế hoạch hiện có cho người dùng mà ứng dụng sẽ sử dụng. Hiện tại, GTAF hỗ trợ mobiledataplan và youtube làm mã nhận dạng hợp lệ của khách hàng. Dưới đây là ví dụ về yêu cầu đối với một nhà mạng có asn là 12345 và khoá người dùng là abcdef chia sẻ thông tin về gói với GTAF cho ứng dụng youtube:
POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/clients/youtube/users/abcdef/planStatus
Nội dung yêu cầu là một phiên bản của 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"
}
Nếu yêu cầu thành công, GTAF sẽ trả về mã phản hồi HTTP 200 và mục planStatus được đẩy cùng với một mục thông báo nếu có thông báo nào được gửi cho người dùng. Nếu GTAF xác định được vấn đề với yêu cầu, thì GTAF sẽ trả về mã trạng thái HTTP trong phạm vi 400-499. Nếu không thể hoàn tất yêu cầu do lỗi GTAF, thì GTAF sẽ trả về mã HTTP trong phạm vi từ 500 đến 599. Những yêu cầu nhận được phản hồi trong khoảng từ 500 đến 599 được coi là có thể thử lại và những yêu cầu nhận được phản hồi trong khoảng từ 400 đến 499 thường không thể thử lại. Error Cases (Các trường hợp lỗi) giải thích chi tiết các phản hồi lỗi từ GTAF.
Thông báo đẩy về trạng thái kế hoạch cho ứng dụng mặc định
GTAF hỗ trợ lệnh gọi sau đây, trong đó trạng thái kế hoạch được nhà điều hành đẩy mà không chỉ định khách hàng có thể sử dụng trạng thái đó. Trong trường hợp này, chúng tôi giả định rằng trạng thái gói dành cho ứng dụng mobiledataplan và nhà mạng dự định gửi thông báo cho người dùng. Nội dung yêu cầu là một phiên bản của PlanStatus
POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef
Quốc tế hoá
Để hỗ trợ quốc tế hoá, DPA phải biết ngôn ngữ mà người dùng ưu tiên ngay cả khi không có yêu cầu trực tiếp từ GTAF. Để giải quyết vấn đề này, yêu cầu đến điểm cuối CPID CÓ THỂ bao gồm tiêu đề Accept-Language (Chấp nhận ngôn ngữ) tuỳ thuộc vào quyền truy cập của máy khách đối với các lựa chọn ưu tiên về ngôn ngữ của người dùng. Nếu tiêu đề được đưa vào, thì các chuỗi mà con người có thể đọc được trong nội dung cập nhật mà DPA gửi bằng API MDP phải sử dụng các chế độ cài đặt được cung cấp trong yêu cầu CPID.
DPA CÓ THỂ cập nhật lựa chọn ưu tiên về ngôn ngữ của người dùng khi nhận được yêu cầu từ GTAF có tiêu đề Accept-Language và sử dụng lựa chọn ưu tiên đã cập nhật của người dùng để xác định mã ngôn ngữ trong các yêu cầu trong tương lai đối với GTAF.
DPA PHẢI chỉ định ngôn ngữ dùng cho các chuỗi mà người dùng nhìn thấy bằng cách sử dụng languageCode. GTAF sử dụng thông tin này để tạo tiêu đề và nội dung của thông báo hiển thị cho người dùng.