HMS Publishing API için Python İstemcisi

Sezer BOZKIR
Huawei Developers - Türkiye
4 min readJun 30, 2020

Selamlar,

Bu yazımda HMS dünyasının güzel bir özelliği olan geliştirdiğimiz uygulamaları yayına almak için kullanabileceğimiz Publishing API için yazdığım client’ın nasıl çalıştığını ve özelliklerini inceleyeceğiz.

Publishing API Nedir?

Mobil uygulama yayınlamak başlı başına bir hayat döngüsüne sahip. HMS ekosisteminde de uygulamanızı yayınlamanızın 2 yolu var.

  1. Uygulamanızı App Gallery Console üzerinden manuel olarak yapılandırıp, siteye yüklemek
  2. Publishing API aracılığıyla API üzerinden yayınlamak

Publishin API, uygulamanızı bir API aracılığıyla App Gallery’e aktarmanızı, açıklama, güncelleme, fotoğraflarını yayınlama gibi birçok özelliği bünyesinde barındıran bir servis. Bu servis ile her uygulamanızı güncellemek istediğinizde manuel olarak uğraşmak yerine uygulamanızın içeriği sabitse ya da öncesinden belirlenmişse bir istemci üzerinden aplikasyonunuzun yayınlanmasına imkan tanımakta.

Python Istemcisi Nasıl Kullanılır?

Öncelikle github reposundan istemciyi indirin. Dosyalar içerisinden “pub-env.py” içerisindeki client-id ve client-secret bilgileri için AppGallery Connect’ girin.

Users and Permissions > Api Key > Connect API kısmına giderek, daha önce oluşturmadıysanız yeni bir client oluşturun. Rollerini belirlerken kullanacağınız özellikleri dikkate alarak yetkilendirmeye yapmaya dikkat edin(her endpoint’in gereksinemlerine şu linkteki ilgili bölümden bakabilirsiniz).

Yeni bir client oluşturduğunuzda karşınızda şuna benzer bir sayfa oluşması gerekmektedir:

package name için uygulamanızı oluşturduğunuz esnada kullandığınız paket adınızı girmeniz gerekmektedir. Bilmiyorsanız ya da unuttuysanız uygulamanızın “AndroidManifest.xml” dosyasındaki “package” kısmından öğrenebilirsiniz:

Bilgileri pub-env.py dosyasına ekledikten sonra test etmek için “examples” altındaki getAppId.py dosyasını çalıştırarak test ettiğinizde aşağıdakına benzer bir çıktı alacaksınız:

Bu ID, sizin HMS sisteminde aplikasyonunuza özel oluşturulmuş benzersiz ID bilginizdir. API üzerinde yapacağınız hemen hemen tüm isteklerde API sizden bu ID’yi string query olarak girmenizi bekleyecektir. Örnek:

https://connect-api.cloud.huawei.com/api/publish/v2/app-info?appid=102445919

Aplikasyon Bilgilerini Çekme

Publishin API üzerinden aplikasyon bilgilerini json olarak kolayca çekip, görüntüleyebilirsiniz. examples/getAppInfo.py örneğini çalıştırdığınızda, size şöyle bir json çıktısı verecektir:

Aplikasyon Bilgilerini Güncelleme

Uygulamanızın App Gallery’deki bilgilerini Publishing API üzerinden kolayca düzenleyebilirsiniz. Düzenleyebileceğiniz parametrelere şuradan göz atabilirsiniz, ben examples içerisinde dil parametresini güncellemiştim:

“update_vals” değişkenini dictionary olarak tanımladım. Yani düzenlemek istediğiniz tüm parametreleri bu değişken üzerinden tek seferde gönderebilirsiniz.

App Gallery’de Farklı Dil İçin Uygulamayı Hazırlama

Uygulamanızı farklı ülkelerde yayınlarken, farklı dillerde açıklama ve isimlendirme yapabilirsiniz. Bunun için AddAppLanguage.py dosyasındaki örneği inceleyebilirsiniz. İlgili endpoint dilin kısaltmasını(buradan kısaltmalara bakabilirsiniz), uygulamanın ilgili dildeki isminin karşılığını ve açıklamasını eklemelisiniz. Aplikasyonu çalıştırdığınızda şöyle bir çıktı alacaksınız:

AGC üzerinden eklediğiniz dilin detaylarına bakabilirsiniz:

APK Dosyasını AGC’ye Yükleme

examples dizini altındaki uploadApk.py dosyasının içerisindeki değişkenleri dikkatle doldurmanız gerekmekte. Aslında bir APK’yı sisteme yüklemek 3 adımdan oluşmakta:

  1. Yükleyeceğiniz dosyanın tipine bağlı olarak Publishing API’ye bir istek göndererek dosyaya özel bir url isteğinde bulunmak
  2. APK dosyanızı bu URL üzerinden Huawei Cloud sistemine yüklemek
  3. Yüklediğiniz APK dosyanızı AGC’deki uygulamanızın projesiyle ilişkilendirmek.

Arkaplanda bunlar yapılacakken, sizin Client içerisinde tek yapmanız gereken APK dosyanızın bilgisayarınızda bulunan full path bilgisini (imzalı olduğundan emin olun) (imza kontrolü ve AGC tarafına ekleme adımları için tıklayın), dosyanızın adını ve apk mı yoksa aab olarak mı yükleyeceğinizi parametre olarak girip, yükleme işlemini tek adımda halledebilirsiniz. Arkaplanda yukarıda bahsettiğim adımlar script tarafından yürütülecektir:

Paketin doğru bir şekilde yüklendiğiniz success mesajından anlıyoruz. AGC üzerinden yüklenip yüklenmediğini görüntülediğimizde:

Entegrasyonunu yaptığım bu endpointler dışında da Publishing API’nin sahip olduğu diğer özelliklere de buradan göz atabilirsiniz: Publishing API

Detaylarını anlattığım github reposuna erişmek için: HMS Publishing API Python Client

Merak ettiklerinizi Huawei developer forum üzerinden veya admin@sezerbozkir.com mail adresimden ulaşarak sorabilirsiniz.

Başka bir yazımda görüşmek üzere… :)

--

--