Motivasyon
Google Mobil Veri Planı Paylaşımı API'si, bir operatörün, bir kullanıcının (kullanıcı anahtarı ile tanımlanır) veri planıyla ilgili bilgileri GTAF'ye göndermesine olanak tanır. Bu sayfada, bu güncellemelerin GTAF'ye ve dolayısıyla Google uygulamalarına nasıl gönderilebileceği açıklanmaktadır. API şu anda DPA'nın, Google istemcisi tarafından kullanılmak üzere GTAF'ye veri planı durumu göndermesine izin veriyor.
Kimlik doğrulama
GTAF'ye gönderilen tüm Data Plan Sharing API isteklerinin, Google Cloud OAuth2 sunucusu kullanılarak kimlik doğrulaması yapılması gerekir. İstekler, DPA'nın temsil ettiği ASN için ISP Portal'da beyaz listeye alınmış bir hizmet hesabı olarak kimliği doğrulanmış olmalıdır. Google Cloud hizmet hesaplarıyla OAuth'un nasıl kullanılacağıyla ilgili dokümanlar için Google Cloud OAuth 2.0 for Service Accounts (Google Cloud Hizmet Hesapları için OAuth 2.0) başlıklı makaleyi inceleyin.
Veri planı güncellemeleri
Google Mobile Data Plan Sharing API, şu anda operatörlerin kullanıcıların veri planlarıyla ilgili güncellemeleri paylaşmasına olanak tanır:
- Veri planı durumu: Kullanıcının veri planının mevcut durumunu gösterir. Örneğin, bir kullanıcının verileri tükeniyorsa operatör, GTAF'ye bir veri planı durumu güncellemesi gönderebilir. Bu güncelleme, GTAF tarafından kullanıcıya düşük bakiye bildirimi göndermek için kullanılabilir.
İlgili kullanıcıları belirleme
Sözleşme, hangi kullanıcıların verilerinin GTAF'ye gönderileceğini belirleyebilmelidir. GTAF, aşağıdaki kullanıcılar için güncelleme almayı bekliyor:
- Etkin CPID'ler: Etkin CPID'leri olan kullanıcılar. CPID uç noktası tarafından oluşturulan CPID'ler geçerli olana kadar, DP, kullanıcının veri planıyla ilgili güncellemeleri GÖNDERMELİDİR.
Accept-Language
başlığı CPID oluşturulurken ayarlandıysa veri planı durumundaki okunabilir dizeler bu dilde OLMALIDIR. - Kayıtlı MSISDN'ler: MSISDN'ye erişimi olan uygulamalara hizmet vermek için GTAF, MSISDN'yi Veri Planı Aracısı API'sinin msisdn_registration bölümünde açıklandığı şekilde DPA'ya kaydeder. MSISDN kaydedildikten sonra, kayıt süresi dolana kadar DPA, kullanıcının veri planıyla ilgili güncellemeler GÖNDERMELİDİR.
API Açıklaması
Veri Planı Durumunu Paylaşma
Şekil 3. DPA, veri planı durumunu GTAF ile paylaştığında GTAF-DPA etkileşimi.
Uygulamalar, veri planı durumu bilgilerini iki şekilde alabilir:
- UE, veri planı durumu bilgileri için GTAF'yi arar:
- Operatörün DPA'sı, kullanıcının veri planı durumunu GTAF'ye aktarmak için Veri Planı Paylaşımı API'sini kullanır. GTAF, plan durumunu ve ilişkili kullanıcı anahtarını depolar.
- UE'de çalışan Google uygulaması, Google'a ait bir API kullanarak veri planı durumu bilgilerini ister. Uygulama, isteğine kullanıcı anahtarını ekler.
- Uygulama, önbelleğe alınmış veri planı durumunu kullanabiliyorsa GTAF, kullanıcının veri planı durumunu aramak için kullanıcı anahtarını kullanır. Ardından GTAF, bu durumu UE'ye döndürür.
- GTAF, veri planı durumu bilgilerini UE'ye gönderir:
- İlgili durumlarda, operatörden alınan veri planı durumu doğrudan kullanıcı ekipmanına gönderilir.
GTAF-DPA Etkileşimi
Veri işleme sözleşmesi, bir kullanıcının mevcut plan durumu girişini oluşturmak ve güncellemek için HTTPS POST'u kullanır. Bu giriş, bir istemci tarafından kullanılır. GTAF şu anda geçerli istemci tanımlayıcıları olarak mobiledataplan ve youtube'u desteklemektedir. İşte youtube istemcisi için GTAF ile plan bilgilerini paylaşan, asn'si 12345 olan ve abcdef kullanıcı anahtarına sahip bir operatörün örnek isteği:
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"
}
İstek başarılı olursa GTAF, HTTP yanıt kodu 200'ü ve kullanıcıya herhangi bir bildirim gönderildiyse bildirim girişiyle birlikte gönderilen planStatus girişini döndürür. GTAF, istekte bir sorun tespit ederse 400-499 aralığında bir HTTP durum kodu döndürür. GTAF, bir GTAF hatası nedeniyle isteği tamamlayamazsa 500-599 aralığında bir HTTP kodu döndürür. 500-599 aralığında yanıt alan istekler yeniden denenebilir, 400-499 aralığında yanıt alan istekler ise genellikle yeniden denenemez.
Varsayılan İstemci İçin Plan Durumu Push'u
GTAF, plan durumu operatör tarafından kullanılabileceği istemci belirtilmeden gönderilen aşağıdaki aramayı desteklemeye devam ediyor. Bu durumda, plan durumunun mobiledataplan istemcisi için olduğu ve operatörün kullanıcıya bildirim göndermek istediği varsayılır. İstek gövdesi, istemci başına kullanım alanı ve varsayılan istemci kullanım alanı için aynıdır.
POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef
Uluslararası hale getirme
Uluslararasılaştırmayı desteklemek için DPA, GTAF'den doğrudan istek gelmese bile kullanıcının tercih ettiği dili bilmelidir. Bu sorunu çözmek için CPID uç noktasına yapılan istek, Accept-Language üstbilgisini içerebilir. Başlık eklenirse MDP API'si kullanılarak DPA'nın gönderdiği güncellemelerdeki okunabilir dizeler, CPID isteğinde sağlanan ayarları kullanmalıdır.