Skip to main content

sendpush

POST v1/simplepush/sendpush#

Bu API aracılığı ile tekil veya çoğul kullanıcılarınıza anında push bildirimleri gönderebilirsiniz.

Her istekte maximum 1000 adet kullanıcıya push bildirimleri gönderebilirsiniz. 1000 adetten fazla kişi verilirse MAX_PUSHES_PER_REQUEST_EXCEEDED hatası alırsınız.

API istekleri

  • HMAC Authentication ile doğrulanmalıdır. HMAC Authentication için Authentication dokümanına bakınız.
  • API URI : https://DIYALOG-SERVER-API-ENDPOINT/v1/simplepush/sendpush
  • HTTP İstek Türü POST
  • HTTP Content-Type application/json

Request Body#

Schema
json object
     to (String[])
      Push bildirim göndermek istediğini kullanıcı (müşteri) numarası veya numaraları
      Tek seferde 1000 kullanıcı numarası girmelisiniz. Daha fazla kullanıcı numarası girerseniz MAX_PUSHES_PER_REQUEST_EXCEEDED hatası alırsınız.
     data (String)
      Mobil cihaza göndermek istesiğiniz payload datasıdır. Maksimum 4kb büyüklüğünde string değer veya Stringify edilmiş json object'i gönderebilirsiniz. Bu payload mobil cihaza bildirim olarak iletilir. İletilen datayı mobil cihazda işleme işlemini kendi mobil uygulamanınzda geliştirmeniz gerekmektedir.
     senderApp (String)
      Bu parametre gönderdiğiniz bildirimin hangi uygulamadan gönderildiğini belirtmeniz için kullanılır. Mobil cihaza "senderApp" custom datası olarak iletilir. Dilerseniz bu data ile mobil cihazınızda bildirimler ayırt edip buna göre işleyebilirsiniz.
     time_to_live (integer)
      Opsiyoneldir. Android ve Huawei cihazlar için geçerlidir.
      Cihaz çevrimdışıysa anında bildirimin ne kadar süreyle (saniye olarak) saklanması gerektiğini belirtir.

      Eğer bu parametre iletilmezse sistem anlık bildirim olarak değerlendirecek ve bu değer 0 olarak set edilecektir.
     content_available (Boolean)
      Opsiyoneldir. (IOS cihazlar için geçerlidir.)
      Default değeri false olarak verilmiştir. true olarak ayarlandığında, uygulamanızın bildirim işleyicisi, uygulama arka planda çalışıyor olsa bile çağrılacak ve bu, kullanıcıyı uyarmadan sunucudan güncellenmiş içeriğin getirilmesine veya başka özel akışın yürütülmesine olanak tanıyacaktır.
      Bunun için mobil uygulamamnın Background Modes -> Remote Notifications özelliğinin etkinleştirilmiş olması gerekmektedir.
     mutable_content (Boolean)
      Opsiyoneldir. (IOS cihazlar için geçerlidir.)
      Default değeri false olarak verilmiştir. true olarak ayarlandığında, uygulamanızın Notification Service Extension'ı, uygulama arka planda çalışıyor olsa bile çağrılacak ve bildiriminiz içindeki zengin medya eklerinin indirilmesine ve görüntülenmesine olanak tanıyacaktır.
      Bunun için mobil uygulamamnın Background Modes -> Remote Notifications özelliğinin etkinleştirilmiş olması gerekmektedir.
     ios_notification(json object)
      Opsiyoneldir. (IOS cihazlar için geçerlidir.)
      Standart alert ve sesli bildirim gönderebileceğiniz IOS bildirim içeriğidir. Parametreleri IOS notification dökümantasyonunda yer alan bildirim parametrelerine göre ayaralanmıştır. Detay bilgilere Apple dökümantasyonundan bakılabilir.
               title (String)
                 iOS 8.2+ ve Apple Watch'ta görülebilen, bildirimin başlığında görünmesini istediğiniz metindir.
               body (String)
                 Kilit ekranında ve iOS'un diğer alanlarında görünen ana bildirim popup'ında görünen mesajdır içeriğidir.
               badge (integer)
                 Opsiyoneldir.
                 Uygulama ikonu üzerinde gürünmesini istediğiniz sayı varsa bu parametreyi girmelisiniz.
               sound (string)
                 Opsiyoneldir.
                 bildirim cihaza geldiğinde çıkarmasını istediğiniz ses dosyasının ismidir. Bu girilmezse bildirim popup'ı ses çıkarmadan görünecektir. Dosya mobil cihazda yoksa cihazın default bildirim sesi çalar.
               category (String)
                 Opsiyoneldir.
                 Uygulamanızın varsa Notification Content Extension içinde tanımladığınız kategoriyi çağırmasını sağlar.
               thread_id (String)
                 Opsiyoneldir.
                 Ortak bir thread_id belirterek birden fazla bildirimi gruplamanızı sağlar.
               interruption_level (String)
                 Opsiyoneldir.
                 iOS 15+ üzerinde bir bildirimin önemini ve teslim zamanlamasını vermenizi sağlar. Bu parametrenin değeri 'Active', 'Critical', ,'Passive', 'Time_Sensitive' değerlerinden biri olabilir. Büyük küçük harf duyarlıdır. Default değeri 'Active' olarak verilmiştir.
               loc_key (String)
                 Opsiyoneldir.
                 Uygulamanızın Localizable.strings dosyasında bulunan bir dizenin key adıdır. Lokalizasyon için bu parametre kullanılabilir.
                 Detaylı bilgiye APNs Dokümantasyonundan ulaşılabilir.
               loc_args (String[])
                 Opsiyoneldir.
                 Belirtilen loc_key ile eşleşen lokalizasyon metnindeki %@ ile işaretlenmiş parametrik bilgilerin yerine değiştirilecek metinleri verebildiğiniz alandır.
                 Detaylı bilgiye APNs Dokümantasyonundan ulaşılabilir.
               title_loc_key (String)
                 Opsiyoneldir.
                 Uygulamanızın Localizable.strings dosyasında bulunan bir dizenin key adıdır. Lokalizasyon için bu parametre kullanılabilir.
                 Detaylı bilgiye APNs Dokümantasyonundan ulaşılabilir.
               title_loc_args (String[])
                 Opsiyoneldir.
                 Belirtilen loc_key ile eşleşen lokalizasyon metnindeki %@ ile işaretlenmiş parametrik bilgilerin yerine değiştirilecek metinleri verebildiğiniz alandır.
                 Detaylı bilgiye APNs Dokümantasyonundan ulaşılabilir.

Örnek Json Request Body :#

{
"to" : ["70021","70024","70025","70022","123","113","11"],
"data" : "{'message':'deneme'}",
"senderApp" : "DevelopmentPostman",
"content_available" : false,
"mutable_content": false,
"ios_notification" : {
"title" : "Deneme",
"body" : "Test mesajıdır.",
"sound": "note"
}
}

Responses#

HTTP 200 Response
json object
API cevap olarak json objesi döner. Uygulamada bildirim gönderme işlemi asenkron olarak yapılmaktadır. Bu nedenle bildirimin APNS, FCM veya HMS üzerinden gönderildiği bilgisi anlık olarak isteğin cevabında alamazsınız. Ancak bu servise ilettiğiniz kullanıcı (müşteri) numaralarından Diyalog sistemine kayıtlı olmayanlar veya token'ı sistemde olmayan kullanıcıların bilgileri size failed alanında isteğin cevabında dönecektir.
     pushId (String)
      İsteğiniz için Diyalog sisteminde tekil bir id oluşturulur. İleride bu id'yi kullanarak kullanıcılarınıza iletilen bildirimleri sorgulayabilirsiniz. Eğer gönderdiğiniz bildirimleri sorgulama ihtiyacınız varsa bu id'yi sisteminizde saklamalısınız.
     success (Boolean)
      İsteğin başarılı bir şekilde alındığı ve bildirim gönderme işlemin başlatıldığını bildirir.
     info (json object)
      Detay bilgileri içeren objedir.
               devices (integer)
                Bildirim gönderme işleminin başarılı bir şekilde başlatıldığı kullanıcı sayısını verir.
               failed (json object array)
                Bildirim gönderimi başlatılamayan kullanıcıların detay bilgilerini içeren dizidir. İçerisinde kullanıcı numarası ve hata kodu bilgilerini içeren objeler taşır.
                    customerNo (String)
                     Bildirim gönderilemeyen kullanıcı numarası
                    errorCode (String)
                      Hata nedenini bildirir. Aşağıdaki değerleri alabilir.
                         USER_NOT_FOUND_IN_SYSTEM
                         USER_PUSH_TOKEN_NOT_FOUND

Örnek Response Body :#

{
"pushId": "083e1470-1bc6-4904-a59b-4cc453e00d3c",
"success": true,
"info": {
"devices": 4,
"failed": [
{
"customerNo": "123",
"errorCode": "USER_NOT_FOUND_IN_SYSTEM"
},
{
"customerNo": "113",
"errorCode": "USER_NOT_FOUND_IN_SYSTEM"
},
{
"customerNo": "11",
"errorCode": "USER_NOT_FOUND_IN_SYSTEM"
}
]
}
}
HTTP 500 Response
string
API genel bir hata aldığında HTTP 500 status kodu ile cevap dönecektir. API'nin hata mesajı metin olarak döner.

API isteği maximum kullanıcı sayısı aşıldığında aşağıdaki hatayı döner.#

HTTP 400 Response
string
MAX_PUSHES_PER_REQUEST_EXCEEDED

API isteği doğrulama sırasında hata alırsa aşağıdaki hata kodlarını döner.#

Http Status CodeMesajAçıklama
400Required headers not foundDate, X-Requester-UserId veya X-Authorization header alanlarından biri veya birkaçı eksik.
400Authorization failed due to data format not validX-Authorization header alanındaki bilgiler doğru formatta değil. Alanın "DLGA " ile başlayıp accesKeyId ve imza değerleri arasına : olduğunu kontrol edin.
400Authorization failed due to date not validX-DLG-DATE tarih formatı "EEE, dd MMM yyyy HH:mm:ss Z" formatında değil. Kontrol edin..
401Authorization failedİstek doğrulanamadı. İmza değeri doğru değil.
403Request time may not be correct.İstek header'ında gelen x-dlg-date ve sunucu zamanı arasında +/- 15 dakikadan fazla fark var.