Turkcell Push Server Turkcell Push Server TurkcellPushServer API Dokümanı V1.0 Turkcell İletişim Hizmetleri A.Ş. 2014
GİRİŞ: Turkcell Push Server, Android, IOS ya da WindowsPhone temelli cihazlar için uygulama geliştirenlere, müşteriler ile iletişimde yeni bir kanal açmak amacıyla geliştirilmiştir. Uygulamalarınızı Turkcell Push Server a entegre ederek, Apple Push Notification Server (APNS), Google Cloud Messaging (GCM) ve Microsoft Push Notification Server (MPNS) sunucularına aynı anda ve çok daha kısa sürede kolayca erişebilirsiniz. Bu sayede, kullanıcılarınıza API üzerinden ya da Turkcell Push Server web ekranları üzerinden push notifikasyon mesajı göndererek, uygulama kullanım oranlarınızı belirgin bir şekilde artırmak mümkün. Push Notifikasyon mesajlarının doğasında cihaza erişimin %100 olmayacağı varsayımı vardır, bu nedenle diğer tüm Push Notification sunucularında olduğu gibi, Turkcell Push Server da, uygulamalara Push Notification mesajlarının ulaşmasını garanti ETMEZ. 1. PUSH SERVER GENEL TANIMI: 1.1. Kapsam Sunucu temelli bir mesaj, ya da PushServer yönetim ekranlarında hazırlanan bir mesaj, mobil cihaza ulaştırılmak üzere PushServer a iletilebilir. PushServer, mesajı kendisine daha önce kayıt olmuş bulunan cihaza notifikasyon mesajı olarak iletir. 1.2. BAŞLANGIÇ: ANDROID: Android cihazlara erişim için, GCM (Google Cloud Messaging) altyapısını kullanmaktadır. Uygulamanızı Turkcell Push Server ile entegre edebilmek için GCM Api Key değerini önceden oluşturmuş olmanız gerekmektedir. GCM kullanımı için, uygulamanın yüklü olduğu cihaz ya Android 4.0.4 ve üzeri bir versiyonda olmalı, ya da bir gmail hesabı ile eşleştirilmiş olmalıdır. Google Kurulumu Google Cloud Messaging (GCM) Turkcell Push Server ın Android cihazlara bildirim mesajını iletmek için kullandığı altyapıdır.. Google da API Key yaratma. Turkcell Push Server da bir Android uygulama tanımlamak için, öncelikle Google dan bir API Key almanız gerekecektir. Adımlar: 1. Google API Console a gidin. Push Server 2
2. Projenizi yaratın: 3. GCM özelliğini aktive edin. 4. Bir API Key yaratın Google Cloud Messaging for Android yazan yere tıklayın. A. Google APIs sayfasına yönleneceksiniz. Burada API Access e tıklayın. B. API Key yaratmak için Create a new Server key... ibaresine tıklayın. C. Herhangi bir IP adresi belirtmeden, Create tıklayın. Push Server 3
D. Sunucu uygulamanızda kullanmak üzere bu API Key bilgisini saklayın. ios: IOS temelli cihazların servisten mesaj alabilmesi için, hem cihazın, hem de mesajı alacak uygulamanın, notifikasyon alma ayarının açık olması gerekmektedir. Uygulama ilk kurulduğunda, kendisini PushServer a tanıtacak ve notifikasyon mesajlarını alabilir hale getirecektir. Bu aşamadan sonra uygulamanın Apple sunucularından aldığı token ile IOS temelli cihaza notifikasyon mesajı gönderilebilecektir. Push Server 4
Production ve Development Uygulamaları Turkcell Push Server üzerinde bir ios uygulama yaratırken, uygulamanızın development, yani Apple test sunucularına giden ya da production, yani Apple production sunucularına giden olduğunu belirlemeniz gerekmektedir.apple, bu iki sunucudaki verileri ayrı olarak tutmaktadır. Yani, uygulamanızın development/sandbox olarak Apple dan aldığı bir token, production ortamında geçersiz olacaktır. Uygulamanızı development provisioning profile olarak geliştiriyor iseniz, Turkcell Push Server da yaratacağınız ios uygulama ayarlarında, test olarak seçim yapmalısınız. Sonrasında, development Push SSL sertifikasını yüklemelisiniz. Distribution provisioning profile (ad-hoc distribution, ya da itunes App Store) kullanan uygulamalarınız için ise production Push SSL sertifikasını kullanmalısınız. Uygulama tarafındaki ayarlar: ios uygulamanızı Turkcell Push Server a entegre etmeden önce ios Developer Program. Üyeliğinizin bulunması ve Apple tarafında ilerletmeniz gereken bazı adımlar bulunuyor. Bir ios Developer sertifikanız var ise, uygulamanızın push notification mesajlarını alması için, aşağıdaki ayarları yapmalısınız. Temel ayarlar yapıldıktan sonra, uygulamanız Turkcell Push Server ile iletişime hazır hale gelecektir. Push SSL Sertifikanızı, Apple Push Notification sunucuları ile iletişime geçmek için kullanıyor olacağız. Private Key iniz, bizim sunucularımızda güvenli bir şekilde saklanacaktır, ve Apple, kimlik dorğulaması için public key bilgisini kullanacaktır. Uygulamayı bulma: Apple Developer Members Center, içerisinde, ios Apps altındaki Identifiers bölümünde geçerek uygulamanızı buradaki uygulama listesinde konumlandırın. Henüz bir AppID kayıt ettirmediyzeniz, + sembolüne tıklayarak formu doldurun ve Push Notifications kutucuğunun seçili olduğuna emin olun. Push Server 5
Uygulama detaylarında Push Notifications alanında yeşil ve sarı iki durum bildirimi göreceksiniz. Settings butonuna tıklayarak devam edin. (Not: Settings butonu Edit olarak görünüyor ise,daha önce push notification ayarlarını zaten yapmış olabilirsiniz) Sertifika dosyasını indirme Development ya da Production Push SSL Sertifikasını oluşturmak için, Settings/(Edit) e tıklauın ve oluşturacağınız sertifikayı seçin: Push Server 6
Create Certificate butonuna tıkladıktan sonra, Add ios Certificate yardım talimatlarını göreceksiniz. Talimatları takip ederek Continue butonuna tıklayın. Signing request sertifikasını kullanarak, APNS Push SSL sertifikasını oluşturun. Download butonu görüntülendiğinde, artık sertifikanızı indirebilirsiniz (Sayfayı yenilemeniz gerekebilir). İndirdiğiniz sertifikayı açtığınızda, Keychain Access içerisinde My Certificates altında sertifikanzı görüntüleyebiliyor olmalısınız. Görüntülenmiyor ise Certificates altında bulunup bulunmadığını kontrol edebilirsiniz.. Push Server 7
Sertifika yenileme Development ya da Production Push SSL sertifikanızı yenilemek için,sertifikanızı ilk kez oluşturuyormuş gibi yukarıdaki adımları takip edebilirsiniz.daha önceki sertifikanızı revoke etmeniz gerekmez.aynı anda iki production sertifikası bulunabilir, böylece siz yenisini sisteme yükleyene kadar eskisi de geçerli olabilecektir. Sertifika.p12 dosyasını alma Keychain Access e eklediğiniz sertifikanıza tıklayın ve File -> Export Items... menüsünü seçin. Category menüsünde sol altta bulunan My Certifiates i seçtiğinize emin olun. My Certificates seçili değilse, sertifikanızı.p12 dosyası olarak oluşturamazsınız. Push Server 8
When saving the file, use the Personal Information Exchange (.p12) format. 2. İŞLEVLER (REST API): 2.1. Cihazı PushServer a tanıtma: [GET] /PushServerLT/rest/registerdevice/<appId>/<token> PushServer dan hizmet almak isteyen IOS uygulamalar, uygulamanın yüklenmesinin ardından, push notification alma onayı için Apple sunucularından token alır ve, API yardımıyla, token bilgisini PushServer a iletir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevice/<appid>/<token> şeklinde bir istek göndererek, ilgili cihazın (token), ilgili uygulamaya (appid) push alabilmek üzere kayıt olmasını sağlar. Push Server 9
CustomID ile OPT-IN: Request e, opsiyonel olarak customid parametresi eklenebilir. Bu sayede, daha sonra API üzerinden push gönderirken, token değil de, servis kullanıcısı tarafından belirlenen başka bir tanımlayıcı olan customid kullanarak push notification gönderilebilecektir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevice/<appid>/<token>?customid=x xx Cihaz bilgilerini de göndererek OPT-IN (Opsiyonel): Cihaz kayıt olurken istenirse opsiyonel cihaz tanımlayıcı parametreler de gönderilerek daha sonra bu tanımlara göre segmentasyon yaılabilir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevice/<appid>/<token>?devicemod el=xxx&osversion=4.2&genericparam=test Parametre Adı appid token customid (opsiyonel) devicemodel (ops.) osversion (ops.) genericparam(ops.) Tanım Hangi uygulama için kayıt olunduğunu belirten ID. (PushServer tarafında daha önce tanımlanmış olmalı) APNS (Apple PushNotificaton Server) tarafından alınmış olmalı. BU PARAMETRE, INCREMENTAL YA DA KOLAYCA TAHMIN EDILEBILEN BIR DEGER TAŞIMAMALIDIR. Token a ek bir tanımlayıcı ID ile register olarak, yine bu ID üzerinden push atılabilmesini sağlayan parametre. (Ör: bir cihazı birden çok authenticate olmuş kullanıcının kullanbildiği durumlarda, kullanıcının değişmesi durumunda yeni bir kayıt göndermek üzere kullanılabilir) Kayıt olurken, cihazın modeli de iletilebilir (iphone4, iphone5 vs.. gibi) Daha sonra push mesajı gönderirken cihaz bazlı filtreleme yapılabilir. Kayıt olurken, cihazdaki işletim sistemi versiyonu iletilebilir. (ios4.1, ios6.1.3.. vs gibi) Daha sonra push mesajı gönderirken işletim sistemi bazlı filtreleme yapılabilir. Kayıt olurken, herhangi başka tanımlayıcı parametre iletilebilir (ör: resolution768x480 vs..) Başarılı istek: Bu istekten dönen cevap (Response) OK ise, cihaz başarı ile PushServer a kayıt olmuştur. Hata Mesajları: Hata Mesajı ERROR: invalid token Anlamı Gönderilen token parametresi geçersiz. (64 karakter olmalı) Push Server 10
NOK : TOKEN EXISTS ERROR: invalid AppId Zaten kayıt olmuş, var olan bir token ile kayıt yapılıyor. Uygulama ID si, PushServer tarafından tanınmıyor. Var olmayan bir uygulamaya kayıt yapılamaz. 2.2. IOS Cihazı kaldırma (OPT-OUT): [GET] /PushServerLT/rest/unregisterdevice/<appId>/<token> Uygulamanın ayarlarının artık push notifikasyon mesajı almak istemediği şeklinde değişmesi durumunda, bu servis çağrılarak, kaydının silinmesi gerekecektir. 2.3. ANDROID Cihazı PushServer a tanıtma (OPT-IN): [GET] /PushServerLT/rest/registerdeviceGCM/<appId>/<registerId> PushServer dan hizmet almak isteyen Android uygulamalar, uygulamanın yüklenmesinin ardından, push notification alma onayı için Google GCM sunucularından registrationid alır ve, API yardımıyla, token bilgisini PushServer a iletir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicegcm/<appid>/<registerid> şeklinde bir istek göndererek, ilgili cihazın (registerid), ilgili uygulamaya (appid) push alabilmek üzere kayıt olmasını sağlar. CustomID ile OPT-IN: Request e, opsiyonel olarak customid parametresi eklenebilir. Bu sayede, daha sonra API üzerinden push gönderirken, token değil de, servis kullanıcısı tarafından belirlenen başka bir tanımlayıcı olan customid kullanarak push notification gönderilebilecektir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicegcm/<appid>/<registerid>?cu stomid=xxx Cihaz bilgilerini de göndererek OPT-IN (Opsiyonel): Cihaz kayıt olurken istenirse opsiyonel cihaz tanımlayıcı parametreler de gönderilerek daha sonra bu tanımlara göre segmentasyon yaılabilir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicegcm/<appid>/<registerid>?de vicemodel=xxx&osversion=4.2&genericparam=test Parametre Adı appid registerid Tanım Hangi uygulama için kayıt olunduğunu belirten ID. (PushServer tarafında daha önce tanımlanmış olmalı) GCM den alınmış olan cihaz-uygulama tanımlayıcısı. Push Server 11
key customid (opsiyonel) devicemodel (ops.) osversion (ops.) genericparam(ops.) sha256(appid+registerid+secret_key) şeklinde oluşturulmalıdır. (SECRET_KEY = PushServer da tanımlı olan güvenlik sözcüğü) BU PARAMETRE, INCREMENTAL YA DA KOLAYCA TAHMIN EDILEBILEN BIR DEGER TAŞIMAMALIDIR. Token dışında bir tanımlayıcı ID ile register olarak, yine bu ID üzerinden push atılabilmesini sağlayan parametre. (Ör: bir cihazı birden çok authenticate olmuş kullanıcının kullanbildiği durumlarda, kullanıcının değişmesi durumunda yeni bir kayıt göndermek üzere kullanılabilir) Kayıt olurken, cihazın modeli de iletilebilir (Samsung Galaxy S4, HTC One vs.. gibi) Daha sonra push mesajı gönderirken cihaz bazlı filtreleme yapılabilir. Kayıt olurken, cihazdaki işletim sistemi versiyonu iletilebilir. (Android4.1.2, Androdi2.1.3.. vs gibi) Daha sonra push mesajı gönderirken işletim sistemi bazlı filtreleme yapılabilir. Kayıt olurken, herhangi başka tanımlayıcı parametre iletilebilir (ör: resolution768x480 vs..) Başarılı istek: Bu istekten dönen cevap (Response) OK ise, cihaz başarı ile PushServer a kayıt olmuştur. Hata Mesajları: Hata Mesajı ERROR: invalid token NOK : TOKEN EXISTS ERROR: invalid AppId Anlamı Gönderilen registerid parametresi geçersiz. Zaten kayıt olmuş, var olan bir registerid ile kayıt yapılıyor. Uygulama ID si, PushServer tarafından tanınmıyor. Var olmayan bir uygulamaya kayıt yapılamaz. 2.4. ANDROID Cihazı kaldırma (OPT-OUT): [GET] /PushServerLT/rest/unregisterGcm/<appId>/<registerId> Uygulamanın ayarlarının artık push notifikasyon mesajı almak istemediği şeklinde değişmesi durumunda, bu servis çağrılarak, kaydının silinmesi gerekecektir. 2.5. Windows Phone Cihazı PushServer a tanıtma (OPT-IN): [GET] /PushServerLT/rest/registerdeviceWns/<appId>?uri=<URI> Push Server 12
PushServer dan hizmet almak isteyen WindowsPhone uygulamalar, uygulamanın yüklenmesinin ardından, push notification alma onayı için WindowsNotificationServer (WNS) sunucularından URI alır ve, API yardımıyla, URI bilgisini PushServer a iletir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicewns/<appid>?uri=<uri> şeklinde bir istek göndererek, ilgili cihazın (URI), ilgili uygulamaya (appid) push alabilmek üzere kayıt olmasını sağlar. CustomID ile OPT-IN: Request e, opsiyonel olarak customid parametresi eklenebilir. Bu sayede, daha sonra API üzerinden push gönderirken, token değil de, servis kullanıcısı tarafından belirlenen başka bir tanımlayıcı olan customid kullanarak push notification gönderilebilecektir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicewns/<appid>?uri=<uri>&cu stomid=xxx Cihaz bilgilerini de göndererek OPT-IN (Opsiyonel): Cihaz kayıt olurken istenirse opsiyonel cihaz tanımlayıcı parametreler de gönderilerek daha sonra bu tanımlara göre segmentasyon yaılabilir. http://pushserver.turkcell.com.tr/pushserverlt/rest/registerdevicewns/<appid>?uri=<uri>&de vicemodel=xxx&osversion=4.2&genericparam=test Parametre Adı appid URI customid (opsiyonel) devicemodel (ops.) osversion (ops.) genericparam(ops.) Tanım Hangi uygulama için kayıt olunduğunu belirten ID. (PushServer tarafında daha önce tanımlanmış olmalı) WNS den alınmış olan cihaz-uygulama tanımlayıcısı. Token dışında bir tanımlayıcı ID ile register olarak, yine bu ID üzerinden push atılabilmesini sağlayan parametre. (Ör: bir cihazı birden çok authenticate olmuş kullanıcının kullanbildiği durumlarda, kullanıcının değişmesi durumunda yeni bir kayıt göndermek üzere kullanılabilir) Kayıt olurken, cihazın modeli de iletilebilir (Nokia Lumia 920, HTC 8S vs.. gibi) Daha sonra push mesajı gönderirken cihaz bazlı filtreleme yapılabilir. Kayıt olurken, cihazdaki işletim sistemi versiyonu iletilebilir. (WP8.0.0, WP8.1.3.. vs gibi) Daha sonra push mesajı gönderirken işletim sistemi bazlı filtreleme yapılabilir. Kayıt olurken, herhangi başka tanımlayıcı parametre iletilebilir (ör: resolution768x480 vs..) Push Server 13
Başarılı istek: Bu istekten dönen cevap (Response) OK ise, cihaz başarı ile PushServer a kayıt olmuştur. Hata Mesajları: Hata Mesajı ERROR: invalid URI NOK : TOKEN EXISTS ERROR: invalid AppId Anlamı Gönderilen URI parametresi geçersiz. Zaten kayıt olmuş, var olan bir registerid ile kayıt yapılıyor. Uygulama ID si, PushServer tarafından tanınmıyor. Var olmayan bir uygulamaya kayıt yapılamaz. 2.6 WindowsPhone Cihazı kaldırma (OPT-OUT): [GET] /PushServerLT/rest/unregisterWns/<appId>?uri=<URI> Uygulamanın ayarlarının artık push notifikasyon mesajı almak istemediği şeklinde değişmesi durumunda, bu servis çağrılarak, kaydının silinmesi gerekecektir. 2.7 KATEGORİLENDİRME: Kategori Listesini alma: [GET]/PushServerLT/rest/getCategoryList/<appId>.<key> Uygulamanın ayarlarında, kullanıcıya bazı kategorilerde push almak istediğine dair seçenek sunulması durumunda, bu API kullanılarak, O uygulama için tanımlı olan tüm kategorilerin listesi alınabilir. Response: ["cinema","entertainment","news","sports"] Cihazın (kullanıcının) push almak istediği kategoriyi bildirme: [GET]/PushServerLT/rest/setAllowedCategory/<appId>.<key>?token=<token>&c ategoryname=<kategori adı> Uygulamanın ayarlarında, kullanıcıya bazı kategorilerde push almak istediğine dair seçenek sunulması durumunda, bu API kullanılarak, kullanıcının seçtiği kategorileri PushServer a bildirilebilir, daha sonra yalnızca belirtilen kategorileri seçenler filtrelenerek push gönderme yapılabilir. Response: {"resultcode":"_0000"} Push Server 14
Cihazın (kullanıcının) push almak istemediği kategoriyi bildirme: [GET]/PushServerLT/rest/unsetAllowedCategory/<appId>.<key>?token=<token> &categoryname=<kategori adı> Uygulamanın ayarlarında, kullanıcıya bazı kategorilerde push almak istediğine dair seçenek sunulması durumunda, bu API kullanılarak, kullanıcının daha once seçtiği kategoriden vazgeçmesi durumunda seçtikleri listesinden kaldrıma isteğini PushServer a bildirilebilir. Response: {"resultcode":"_0000"} Cihazın (kullanıcının) push almak istediği kategorileri listeleme: [GET]/PushServerLT/rest/getAllowedCategories/<appId>.<key>?token=<token> Uygulamanın ayarlarında, kullanıcıya bazı kategorilerde push almak istediğine dair seçenek sunulması durumunda, bu API kullanılarak, kullanıcının hangi kategorileri seçtiği bilgisi alınabilir. Response: ["cinema","entertainment","news","sports"] 1. PUSH NOTIFIKASYON GONDERME (API YARDIMIYLA) Push notifikasyon mesajı göndermek için "/sendpushwmsisdn/<appid>.<key> "/sendpushwtoken/<appid>.<key> "/sendpushwcustomid/<appid>.<key> API lerinden biri kullanılmalıdır. 4.1. MessageParam Nesnesi: Field Name Field Type Max Length M/O Description key String 254 M Key to send in payload value String 254 M Value to send in payload. 4.2. Message Nesnesi: Push Server 15
Field Name Field Type Max Length M/O Description content String 254 O The text message in the push notification params MessageParam OBJECT O Extra parameters, to send Push Notification including payload parameters. destinations List<String> OBJECT M TOKEN (REGISTER_ID, URI) or MSIDN OR CustomID list to send Push Notifications to. scheduleddate date 14 O Schedule a push notification to send later, scheduledate must be filled. 4.3. TOKEN (RegisterID) kullanarak gönderme: Mobil uygulamanın, PushServer a register olurken gönderdiği token değeri (Android uygulama için registerid), yine aynı uygulamaya push notifikasyon mesajı gönderirken de kullanılacak ise, bu API kullanılmalıdır. 4.3.1. API Tanımı: No Interface Item Description 1 REST-HTTP-Method POST 2 REST-URI-Fragment /rest/sendpushwtoken/{appid.key} 3 HTTP Response Refer to HTTP s response status code 4.3.2. Input Değerleri: No Parameter Type M/O Param Type Max Length Description 1 appid String M path 32 Appliation ID 2 key String M path 32 Sha256(appId+securityKey) 3 message Message M json Sizeof(Message) Message Meta Data 4.3.3. Response Değeri: No Parameter Type M/O Max Length Description 1 pushresponse json M Sizeof(pushResponse) json formatted String, of PushResponse object. Push Server 16
4.3.4. Örnek: No. Request/Response Example 1 HTTP Request POST /rest/sendpushwtoken/{appid.key} HTTP/1.1 Content Type: application/json; charset=utf-8 { "destinations":["token1", token2 ], "content":"deneme mesajı", "scheduledddate":"2012-11-02t15:37:58+0200"} Ör2: { "destinations":["token"], "content":"deneme mesajı", "params":[{"key":"url","value":"http://turkcell.com.tr/push"}] } 2 HTTP Response HTTP/1.1 200 Accepted Content Type: application/json; charset=utf-8 { bacthid :11023, resultcode: 0000, unknowndevicelist :[ 05304556726 ] } 4.4. MSISDN kullanarak gönderme: Mobil uygulamanın, PushServer a register olurken, RADIUS üzerinden alınan MSISDN değeri, uygulamaya push notifikasyon mesajı gönderirken kullanılacak ise, bu API kullanılmalıdır. UYARI: Uygulama, register olurken,3g değil de Wi-fi üzerinden gelmiş ise, MSISDN bilgisi alınamamış olabilir. 4.4.1. API Tanımı: No Interface Item Description 1 REST-HTTP-Method POST 2 REST-URI-Fragment /rest/sendpushwmsisdn/{appid.key} 3 HTTP Response Refer to HTTP s response status code 4.4.2. Input Değerleri: No Parameter Type M/O Param Type Max Length Description 1 appid String M path 32 Appliation ID Push Server 17
No Parameter Type M/O Param Type Max Length Description 2 key String M path 32 Sha256(appId+securityKey) 3 message Message M json Sizeof(Message) Message Meta Data 4.4.3. Response Değeri: No Parameter Type M/O Max Length Description 1 pushresponse json M Sizeof(pushResponse) json formatted String, of PushResponse object. 4.4.4. Örnek: No. Request/Response Example 1 HTTP Request POST /rest/sendpushwmsisdn/{appid.key} HTTP/1.1 Content Type: application/json; charset=utf-8 {"async":false, "destinations":["05304556753", 05304556726 ], "content":"deneme mesajı", "scheduleddate":"2012-11-02t15:37:58+0200"} Ör2: Ör2: { "destinations":["msisdn"], "content":"deneme mesajı", "params":[{"key":"url","value":"http://turkcell.com.tr/push"}] } 2 HTTP Response HTTP/1.1 200 Accepted Content Type: application/json; charset=utf-8 { bacthid :11023, resultcode: 0000, unknowndevicelist :[ 05304556726 ] } 4.5. CustomID kullanarak gönderme: Mobil uygulamanın, PushServer a register olurken Opsiyonel olan CustomId parametresi ile istek yapılmış ve uygulamaya push notifikasyon mesajı gönderirken de bu değer kullanılacak ise, bu API kullanılmalıdır. Push Server 18
4.5.1. API Tanımı: No Interface Item Description 1 REST-HTTP-Method POST 2 REST-URI-Fragment /rest/sendpushwcustomid/{appid.key} 3 HTTP Response Refer to HTTP s response status code 4.5.2. Input Değerleri: No Parameter Type M/O Param Type Max Length Description 1 appid String M path 32 Appliation ID 2 key String M path 32 Sha256(appId+securityKey) 3 message Message M json Sizeof(Message) Message Meta Data 4.5.3. Response Değeri: No Parameter Type M/O Max Length Description 1 pushresponse json M Sizeof(pushResponse) json formatted String, of PushResponse object. 4.5.4. Örnek: No. Request/Response Example 1 HTTP Request POST /rest/group/{appid.key} HTTP/1.1 Content Type: application/json; charset=utf-8 {"async":false, "destinations":["customid123", customid456 ], "content":"deneme mesajı", "createddate":"2012-11-02t15:37:58+0200"} Ör2: Ör2: { "destinations":["customid"], "content":"deneme mesajı", "params":[{"key":"url","value":"http://turkcell.com.tr/push"}] } 2 HTTP Response HTTP/1.1 202 Accepted Content Type: application/json; charset=utf-8 Push Server 19
No. Request/Response Example { bacthid :11023, resultcode: 0000, unknowndevicelist :[ 05304556726 ] } 4.6. TOPLU (Tüm Cihazlara) gönderme: Uygulamanın, tüm kayıtlı cihazlarına push notifikasyon mesajı gönderilecek ise, bu API kullanılmalıdır. 4.6.1. API Tanımı: No Interface Item Description 1 REST-HTTP-Method POST 2 REST-URI-Fragment /rest/sendpushtoalldevices/<appid>.<key>?categoryname=<category> ( categoryname ops.) 3 HTTP Response Refer to HTTP s response status code 4.6.2. Input Değerleri: No Parameter Type M/O Param Type Max Length Description 1 appid String M path 32 Appliation ID 2 key String M path 32 Sha256(appId+securityKey) 3 categoryname String O path 32 To filter devicelist by CategoryName (categoryname sent to server, via setallowedcategory API) 4 message Message M json Sizeof(Message) Message Meta Data 4.6.3. Response Değeri: No Parameter Type M/O Max Length Description 1 pushresponse json M Sizeof(pushResponse) json formatted String, of PushResponse object. Push Server 20
4.6.4. Örnek: No. Request/Respons e Example 1 HTTP Request POST /rest/group/{appid.key} HTTP/1.1 Content Type: application/json; charset=utf-8 {"async":false, "params":[{"value":"url","key":"http://turkcell.com.tr/push" }], "content":"deneme mesajı", "scheduleddate":"2012-11-02t15:37:58+0200"} 2 HTTP Response HTTP/1.1 202 Accepted Content Type: application/json; charset=utf-8 { bacthid :11023, resultcode: 0000} 5. GÖNDERİLMİŞ PUSH NOTIFIKASYONLARIN LİSTESİNİ ALMA: [GET]/PushServerLT/rest/getMessageHistory/<appId>.<key>/<page>.<pageS ize> (Ör: http://pushserver.turkcell.com.tr/pushserverlt/rest/getmessagehistory/05 a77e0031870e30a84ee7e75f66417e.c36df89c8183c31a5d9ed5674a81bdb6 1f181009608316e02edf26d6f49da665/1.10 ) No Parameter Type M/O Param Type Max Length Description 1 appid String M path 32 Appliation ID 2 key String M path 32 Sha256(appId+securityKey) 3 page Integer M path - Starting point of all messages to include in message list 4 pagesize Integer M path - Size of List Items Push Server 21
5.1.1. Response Değeri: No Parameter Type M/O Max Length Description 1 Message Array json M Sizeof(MessageArray) json formatted String, Array of Message object. 5.1.2. Örnek: No. Request/Response Example 1 HTTP Request GET /rest/getmessagehistory/<appid>.<key>/<page>.<pagesize> HTTP/1.1 2 HTTP Response HTTP/1.1 202 Accepted Content Type: application/json; charset=utf-8 {"messagehistories":[]} 6. SONUÇ/HATA KODLARI No ResultCode Description 1 0000 Operation succeeded 2 1001 System exception (should be retried) 3 1002 Mandatory parameter is null (Message content is incomplete) 4 2001 AppId does not exist 5 2002 Invalid Key 6 2003 No device found. Message is canceled. 7 2004 Scheduled message is successfully defined. 8 2005 No test device found. 9 2006 Message Type is not selected. 10 2007 Parameter count is not numeric. 11 2008 Device or Registration is not found. 12 2009 Category is not found 13 2010 Category is already set for the device. Push Server 22
Push Server 23