Huawei Ability Gallery — Card Ability Özelliği ile Account Binding Yöntemi

Enes Kocaman
Huawei Developers - Türkiye
5 min readMay 6, 2021

--

Internetin hayatımıza girmesiyle, dünyamızda gelişen olaylar hakkında artık gün aşırı değil, olay anından bazen birkaç saat, bazen birkaç dakida, bazen ise birkaç saniye sonra haberdar olabiliyoruz. Şüphesiz bu sürenin kısalmasında, cebimizde taşımış olduğumuz ve her an yanımızda bulunan cep telefonlarımız ya da artık genel kullanılan tabiriyle “Akıllı Telefonlarımız” büyük bir pay sahibi. Günümüzde teknolojinin hızla gelişmesinin bir sonucu olarak, birçok telefon modelinin bazı dizüstü/masaüstü bilgisayar modellerine göre hız olarak üstünlük kurmuş olması ve bunun yanı sıra sağladığı kullanım kolaylığı sebebiyle son kullanıcıları, bilgisayardan daha çok cep telefonlarını kullanarak internete erişmeye itiyor.

Aşağıda yer alan güncel istatistikte 2015 yılının ilk çeyreği ile 2021 yılının ilk çeyreği arasındaki zaman aralığında, dünya üzerinde web sitelerine girişte mobil cihazların kullanım oranlarına ulaşabilirsiniz.

https://www.statista.com/statistics/277125/share-of-website-traffic-coming-from-mobile-devices/

2015 Q1 → 31.16%

2021 Q1 → 54.80%

Bu istatistikten yola çıkarak, günümüz mobil telefon üreticileri arasındaki rekabeti de göz önüne aldığımızda; gelecek yıllarda mobil telefon üzerinden internete erişen kullanıcı oranı’nın azalmayacağını aksine daha da artacağı tahmininde bulunmak yanlış olmaz. Bu sebeple, günümüzde bir şirketin veya bireysel geliştiricinin son kullanıcıya sunduğu bir ürünün mobil uygulama marketlerinde indirilebilir olması daha fazla kullanıcıya ulaşması anlamına gelecektir.

Peki, sadece mobil uygulama marketlerinde bulunmak, tek başına sizin kullanıcı sayınızın artmasına yeterli olur mu?

Elbette ki Hayır. Kullanıcıların internete erişmek için bilgisayarlara nazaran akıllı telefonları daha fazla tercih etmesinin arka planında yatan sebepleri sayarken Hız ve Kolay Erişebilirlik’den bahsetmiştik. Bu iki kavramı ortak bir çatıda toplamak istersek buna Kolaylık diyebiliriz. Akıllı telefonlar üzerinden internete erişim bilgisayarlara göre daha kolaydır ancak teknolojinin insan hayatına gün be gün sağladığı kolaylıkların ne kadar arttığını düşündüğümüzde bu tek başına yeterli değildir.

Akıllı telefon kullanan bir kullanıcı, bir süre sonra uygulama marketinden indirilen uygulama üzerinden yapacağı işi bu uygulamayı, marketten indirmeye veya uygulamayı açmaya zaman harcamadan daha efektif bir şekilde yapmanın bir yolunu arayacaktır

Bu arayışı Huawei markalı akıllı telefonlarında yapan kullanıcılar için çözüm yolu Huawei Ability Gallery ekranı olacaktır.

Kullanıcılar, telefonların -1 ekranında kullanıcılara sunulabilen Card Ability ve Content Ability sayesinde kullanıcı, ilgili uygulamayı açmadan talep ettiği sonuçlara ulaşabilmektedir. Örnek bir senaryo üzerinden ilerleyecek olursak;

Tren bileti rezervasyonu hizmeti sağlayan bir uygulamayı düşünelim, bu uygulama üzerinden almış olduğunuz bilet ile ilgili detayları(Sefer No, Sefer Saati, Vagon No, Koltuk no vb.) uygulamayı tekrar açmanıza gerek kalmadan Huawei Ability Gallery sayfasında oluşturulan sabit bir Card üzerinden takip etmek kolay olurdu değil mi?

Bu hizmetin sunulabilmesi için, ilk önce Huawei kullanıcısının, Ability Gallery tarafından atanan Open ID’si ile ilgili uygulamaya login olduğunda uygulama tarafından kendisine atanan UID’nin eşleştirilme işleminin yapılması gerekmektedir. Bu eşleştirilme işleminin adı Account Binding’dir. Alt başlığımızda Account Binding işleminin adımlarını inceleyeceğiz.

Account Binding Nedir?

Adından da anlaşılacağı gibi Account Binding, bir kullacının hesabına ait iki farklı bileşenin ya da verinin arasında eşleştirme işleminin yapılmasıdır.

Bu eşleştirme, kullanıcının Card Ability içerisindeki “İlişkilendir” seçeneğine tıkladığı anda başlamaktadır. Huawei Ability Gallery tarafından oluşturulan ve kullanıcının ilgili ability ile ilişkilendirilmesini sağlayan Open Id ve kullanıcının mobil uygulamaya login olurken kendisine developer’ın serverı tarafından atanan hesap Id(UID)’nin developer’ın Veri Tabanında eşleştirilerek saklanması ve bunun sonucunun Huawei Ability Gallery’e bildirilmesi ile binding işlemi tamamlanmış olur.

Neden ihtiyaç duyulur?

Huawei Ability Gallery tarafından sağlanan bir özellik olan Event Push buna gerekçe gösterilebilir. Event Push, kullanıcılara Card üzerinde kişiselleştirilmiş içerikler sunabilmeye olanak sağlar. Bunlar; yolcu biniş kartı’nın hatırlatılması, çağrılmış olan taksi’nin durumu, vb. gibi hedef kullanıcı kitlesi barındıran içeriklerdir ve hedef kullanıcı kitlesine ulaşabilmek için de Account Binding işlemi zorunlu hale gelmektedir.

Hangi durumlarda gerekli değildir?

İngiltere Futbol Ligin’deki canlı maç sonuçlarını gösteren bir Card Ability olduğunu düşünelim. Bu Card üzerinde sunulan içeriğin herhangi bir kullanıcı için özelleştirilmesine gerek yoktur. Benzeri durunlarda yani genel kullanıcı kitlesine içerik sunulan kartlarda Account Binding işleminin yapılmasına ihtiyaç bulunmamaktadır.

Nasıl uygulanır? Adım Adım inceleyelim…

Account Binding in Cards Solution-2 Architecture

Yukarıda görmüş olduğunuz mimari üzerinden her bir adımı açıklayarak bu süreci daha iyi anlayabiliriz.

1- Account Binding işlemi için ilk aşamada gerekli olan kısım Server Side:

Bu aşamada developer, Huawei Ability Gallery tarafından gönderilecek POST isteğine karşılık dönülmesi gereken Response’u üretecek olan end-point’i belirtilen formatta tasarlamalıdır.

2- Developer hesabında, Ecosystem Services>Smart Services>Huawei Ability Gallery

a. Ability Gallery Console ekranında konfigürasyonları gerçekleştirirken Account Linking bölümünde, “Custom sign-in” seçeneği seçilmeli ve “Receiving URL” kısmına ise tasarladığı backend URL’in adresi girilmelidir.

b. Access Key ve Secret Key alanlarına toplamda 64 karakter uzunluğunda key’ler girilmelidir. (Key’leri kendiniz üretebilirsiniz)

Select Custom Sign-in

c. Son olarak Save butonuna tıklayarak yapılan işlemler kaydedilmelidir.

3- Huawei Ability Gallery; console’da belirtilen receving URL’e aşağıdaki formatta bir POST request’i gönderir ve cevabında, mobil uygulamanın login sayfasına ait deepLink Open ID ile birlikte döndürülür.

4- Backend tarafından döndürülen deepLink örneği:

hwapp://com.huawei.hag/openId=xxxx

Örnek response body’si için:

https://developer.huawei.com/consumer/en/doc/development/service/hag-guide-accountbinding-card#inf14

5- Kullanıcı, mobil uygulamanın / HTML 5 uygulamasının login sayfasına yönlendirildi.

6- Kullanıcı, Huawei ID ile login işlemi gerçekleştirildi.

7- Bu adımda, kullanıcının Huawei ID ile login yapmasından dolayı sahip olduğu UID/AccountId ve Abone olmuş olduğu ability ile ilişkilendirilmesini sağlayan HAG tarafından atanan OpenId’nin eşleştirilmesi işlemi yapılmalıdır.

a. Developer kendi DB’sinde Kullanıcı UID’sinin karşılığına aynı kullanıcının OpenId’sini ekler.

8- Son olarak, binding sonucun Huawei Ability Gallery’e bir api üzerinden bildirilmesi gerekmektedir. Sonuç bildirimi için gönderilecek API isteğinin formatı https://developer.huawei.com/consumer/en/doc/5060447#m1 adresindeki dokümanda paylaşılmıştır.

Sonuç

--

--