Độ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ề số dư thấp cho người dùng.
Xác định người dùng có liên quan
DPA cần có cách xác định dữ liệu của người dùng nào cần gửi đến GTAF. GTAF dự kiến sẽ nhận được thông tin cập nhật cho những người dùng sau:
- CPID đang hoạt động: người dùng có CPID đang hoạt động. Cho đến khi các CPID do điểm cuối CPID tạo ra có hiệu lực, DPA NÊN gửi thông tin cập nhật về gói dữ liệu của người dùng. Nếu tiêu đề
Accept-Language
được đặt tại thời điểm tạo CPID, thì các chuỗi mà con người có thể đọc được trong trạng thái kế hoạch dữ liệu PHẢI bằng ngôn ngữ đó. - MSISDN đã đăng ký: để phân phát các ứng dụng có quyền truy cập vào MSISDN, GTAF sẽ đăng ký MSISDN với DPA như mô tả trong phần đăng ký msisdn của Data Plan Agent API. Sau khi MSISDN được đăng ký, DPA NÊN gửi thông tin cập nhật về gói dữ liệu của người dùng cho đến khi lượt đăng ký hết hạn.
Nội dung mô tả API
Trạng thái chia sẻ gói dữ liệu
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 về trạng thái gói dữ liệu theo 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 với trạng thái đó.
- Ứ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 UE.
- 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.
Tương tác GTAF-DPA
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
{
"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.
Thông báo đẩy về trạng thái kế hoạch cho ứng dụng mặc định
GTAF tiếp tục hỗ trợ lệnh gọi sau đây, trong đó trạng thái gói thuê bao được nhà mạng đẩy mà không chỉ định khách hàng có thể sử dụng gói thuê bao đó. 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 giống nhau đối với trường hợp sử dụng cho mỗi ứng dụng và trường hợp sử dụng ứng dụng mặc định.
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 một tiêu đề Accept-Language. 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 MDP API phải sử dụng các chế độ cài đặt được cung cấp trong yêu cầu CPID.