Huawei Push Kit Server Side Entegrasyonu

Yağmur Kılıç
Huawei Developers - Türkiye

--

Merhabalar, bu yazımda sizler için Huawei “push kit” entegrasyonu nasıl yapılır? ve Nelere dikkat etmeliyiz? Sorularının cevaplarını derledim. Şimdiden keyifle okumalar dilerim.

Projede Kullanılan Teknolojiler

Beraber inceleyeceğimiz bu örnekte aşağıda belirttiğim teknolojiler kullanıldı.

  • Java 1.8
  • Spring Boot

Entegrasyon Süreci ve Adımları

Huawei push kit HTTPS isteklerini destekler. Diğer bir ifadeyle uygulamanız push kit servislerini çağırarak bir push mesaj isteği gönderebilir. Bu örnekte push notification mesajı üzerinden ilerleyeceğiz.

İlk olarak uygulamanızın client ile iletişim kurabilmesi için bir access token elde etmelisiniz. Acces token elde etme işlemi hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

Push Notification Gönderme Sürecini Başlatmak

1. Servis Bilgileri — Access Token Alma

Protocol : HTTSP POST

Yön : Uygulamanızın sunucusu → HUAWEI Account Kit server

URL : https://oauth-login.cloud.huawei.com/oauth2/v2/token

Veri Formatı

Request : Content-Type: application/x-www-form-urlencoded

Response : Content-Type: application/json;charset=UTF-8

2 . Servis Bilgileri — Notification Mesajı Gönderme

Protocol : HTTSP POST

Yön : Uygulamanızın sunucusu → Huawei Push Kit server

URL : https://push-api.cloud.huawei.com/v1/[appid]/messages:send

Veri Formatı

Request: Content-Type: application/json

Response: Content-Type: application/json

Servis Parametreleri

appid : Uygulama id’si

Zorunlu bir parametredir ve veri tipi String’ dir

Push Request - Header

Authorization: 1. adımda elde edilen acces token bilgisidir. Örnek parametre formatı : Bearer ‘acces_token’

Bearer ile access_token değeri arasına mutlaka bir boşluk karakteri eklenmelidir. Siz burada acces_token’ı kendi uygulamanızın acces token’ı ile değiştirdiğinizde aşağıdaki gibi bir yapı elde edeceksiniz.

Bearer CF3Xl2XV6jMKZgqYSZFws9IPlgDvxqOfFSmrlmtkTRupbU2VklvhX9kC9JCnKVSDX2VrDgAPuzvNm3WccUIaDg ==

Push Request — Body

validate_only: Bu parametre bir mesajın test mesajı olup olmadığını gösterir. Test mesajı yalnızca format geçerliliğini doğrulamak için kullanılır ve kullanıcı cihazlarına gönderilmez. Zorunlu bir alan değildir ve default değer false olarak ayarlanmıştır.

  • true : test mesajı
  • false : resmi mesaj

Message: Gönderilecek olan notification mesajıdır ve karşılaması gereken format ile içermesi gereken zorunlu veriler vardır. Message parametresinin detaylarına buradan ulaşabilirsiniz. Projemizde kullanılan mesaj yapısı aşağıdaki gibidir.

Push Response — Body

Servisten dönen cevap aşağıda belirtilen formatta olacaktır.

Servis bize başarı ve hata durumlarında bir kod ve mesaj dönmektedir. Başarı durumunda bu kod 80000000'dir.

Burada en sık karşılaşabileceğiniz hata servisi geçerli bir request yapısıyla çağırmamaktır. Bu durumda servisten dönecek hata kodu ve mesajı 80100003 — Incorrect message structure şeklindedir.

Huawei Push Kit ile Notification Gönderme

Notification mesajını oluşturma: Uygulamanız için geçerli olan acces token’ı başarılı bir şekilde elde ettikten sonra göndereceğiniz notification mesajını oluşturmalısınız. Notification mesajını oluştururken yukarıda belirtilen sınıf yapılarına bire bir uymak zorundasınız. En tepedeki sınıfımız pushMessage.java sınıfıdır ve push servisinin ana request parametresidir.

Push servisinin request ve response formatı application/json olduğu için 10.satırda pushMessage objemizi jsona çeviriyoruz.

ClickAction: Notification mesajına tıklandığında gerçekleşecek olayı belirler. Biz projemizde ClickAction tipi olarak 3 kullanacağız yani mesaja tıklandığında uygulamamızın ana sayfası açılacak.

  • 1: Uygulamanızdaki belirli bir sayfayı açar.
  • 2: Sizin tarafınızdan verilen URL açar.
  • 3: Uygulamayı açar/başlatır.

collapse_key : Push Kit server tarafından çevrimdışı bir kullanıcıya gönderilen mesajların kullanıcı çevrim içi olduktan sonra yönetilmesini sağlar. Biz projemiz collapse_key’i 0 olarak kullandık. Bunun anlamı uygulama tarafından kullanıcı cihazına gönderilen en son çevrimdışı mesaj önbelleğe alınması ve sadece son mesajın kullanıcıya iletilmesidir.

urgency: Bir veri mesajının teslim önceliğini belirtir.

  • NORMAL
  • HIGH : Yalnızca kurum içi iletişim veya VoIP telefon işlevini destekleyen uyarı uygulamaları için kullanılabilir. Hedef cihaza bir notification mesajı ulaştığında, ilgili uygulama doğrudan başlatılır.
Kullanıcıya iletilen notification mesajı

Bu yazımda sizlerle paylaşmayı planladığım başlıkların sonuna geldik. Bir sonraki yazımda görüşmek dileğiyle.

Kaynaklar:

--

--