16Kas Postatr APİ & JSON web servisi Postatr Kullanımı | 16.11.2019 16:52 | Okunma : 7061 Nedir ? Sistemde kayıtlı olan üyelerinize Postatr.com kullanıcı paneline girmeden uzaktan datalarınızın yönetimi, veritabanı eşleme, uygulama entegrasyonu, toplu email, tekil veya transactional email gönderileriniz için kullanabileceğiniz gelişmiş bir web servisidir. En az 1 adet aylık hesabı olan sözleşmeli müşterilerimiz bu servisi kullanmak için yetki isteyebilirler. IP adresiniz için yetki almadan bu servise erişemezsiniz. Bağlantı URL ? http://api.postatr.com/api.asmx Metodların tek tek kullanımları ? Authenticate Web servisinde bulunan metodların kullanılması için öncelikle yetki kodu almanız gerekir. Bu metodu kullanarak Postatr servisine kayıt olurken kullandığınız kullanıcı adı ve şifre bilgileri ile birlikte Şifreli numaranızı girerek diğer metodlar için kullanacağınız yetki kodunu edinebilirsiniz.Edindiğiniz yetki kodu 10 dakika süresince geçerli olacaktır. Parametreler ve kullanım Username : Postatr sistemine giriş için kullandığınız kullanıcı adı Password : Postatr sistemine giriş için kullandığınız şifre EncryptedId : Postatr sisteminde tanımlı ve şifrelenmiş hesap numarasıdır. api.postatr.com/api.asmx/Authenticate { "Username":"nac195862", "Password":"nakliyat23", "EncryptedId":"12FD8A5F-2H34-486F-871D-5E697677BFC4" } Dönen Cevaplar Bilgiler doğru ise yetki kodu döner <string>6AC778A1-10D5-4EE5-A95A-22CBE9431085</string> Bilgiler yanlış ise 0 döner <string>00000000-0000-0000-0000-000000000000</string> ReportCampaign Daha önceden göndermiş olduğunuz bir kampanyanın detaylarına veya şimdiye kadar gönderdiğiniz tüm kampanyaların genel bilgilerine ulaşın. Parametreler ve kullanım Token : Authenticate metodunu kullanarak almış olduğunuz yetki kodu CampId : Kampanyanızın Postatr numarasıdır, bir kampanyayı başlattığınızda bu numara üretilerek size döndürülür. http://api.postatr.com/api.asmx/ReportCampaign { "Token" : "a2fc4te0-5b0f-40fc-bea1-8500c2886bae", "CampId" : "10041" } Dönen bilgiler : Email: Alıcı adresi Status: Kampanyanın şu anki durumu (İşleniyor, Gönderiliyor, Kuyrukta, Tamamlandı) SentDate: Kampanyanın tarihi OpenCount: Açılma sayısı LastOpenDate: Son açılma tarihi Memberid: Üye numarası ErrorCode: Hata kodu varsa buradaki değeri okuyun. ReportMembers Bir kampanyanın alıcılarını raporlar. Açma, tıklama, ulaşma bilgilerini ve tarihlerini döndürür. Parametreler ve kullanım Token : Authenticate metodunu kullanarak almış olduğunuz yetki kodu CampId : Kampanyanızın Postatr numarasıdır, bir kampanyayı başlattığınızda bu numara üretilerek size döndürülür. MemberId : Üyenizin sizde kayıtlı firma numarası. Göndermezseniz kampanyadaki tüm alıcıları raporlar. http://api.postatr.com/api.asmx/ReportMembers { "Token" : "a2fc2ae0-5b0f-40fc-bea1-8500c2886bae", "CampId" : "10041", "Memberids": [ "Ca4287B1-C892-4565-A847-51A3AB1C9814", "E35AE773-3E93-4619-AA86-067C73281AA0", "87D3A461-73A6-4C2E-9392-111428E375E8", "9B80640E-0670-4931-B270-C714CD3AC196", "8F24C215-0AA6-47F1-8B29-E9FBA558D1BB" ]} Dönen bilgiler : Email: Alıcı adresi Status: Şu anki durumu (Ulaştı, Açtı, Tıkladı) SentDate: Kampanyanın tarihi OpenCount: Açma sayısı LastOpenDate: Son açma tarihi Memberid: Üye numarası ErrorCode: Hata kodu varsa buradaki değeri okuyun. StartProcess Tüm işlemleri yapacak olan metoddur. Parametrelerinize göre datalarınızı aktarır, günceller ve (ve ya) gruplar.Toplu email kampanyanızı başlatır. Parametreler ve kullanım Token (Authenticate metodunu kullanarak almış olduğunuz yetki kodu) SegmentationFilter SQL dilinde kullanılan “Where” ifadesinin karşılığıdır. Veritabanında kayıtlı bulunan ve süzme yetkinizin bulunduğu tüm alanları kullanabilirsiniz. Bir kriter yazmazsanız hata verir. Örnek 1 : (Email adresi içerisinde "@postatr.com" geçen tüm üyelere) Email Like '%@postatr.com%' Örnek 2 : (Sadece abc@postatr.com email adresli üyeye) Email = 'abc@postatr.com' Örnek 3 : (abc@postatr.com ve def@postatr.com email adresli üyelere ) Email = 'abc@postatr.com' Or Email = 'def@postatr.com' Örnek 4 : (TestGrup alanı içerisindeki verisi “Evet” olanları seçer) TestGrup= 'Evet' Örnek 5 : (Kendi tanımladığınız veritabanı alanında kendi girdiğiniz değeri süzün) VeritabanıAlanınız = 'Alana girdiğiniz değer' Örnek 6 : (Tüm kayıtlı ve aktif olan üyelerinizi süzün) 1=1 ve ya Email Like '%@%' MailDescription (Sadece sizin göreceğiniz kampanya açıklaması ) MailTestAddress Test mail adresidir. Servis kullanımı için düzenlemelerinizi yaparken, HTML kodlarınızı ve farklı sağlayıcılardaki görüntüsünü test ederken kullanabilirsiniz.Ayrıca toplu email kampanyanızı başlatmadan önce son bir test yapmak ve onaylandıktan sonra gerçek hedef kitlesine başlatmak için kullanabilirsiniz. 1. Eğer bu alana bir bilgi girilmiş ise "SegmentationFilter ve Zamanlayıcı(StartDate)" yok sayılır ve sadece bu adrese "1 kişilik" ve "hemen" test emaili gönderilir. 2. Test alıcısına gelen mailin konusuna "Test" ifadesi ile birlikte emailin gönderilme tarihi eklenir. 3. Test alıcısına gelen mailin içeriği, hesabınızdaki ilk aktif üyenin bilgileriyle birlikte sunulur. StartDate (Kampanyanızın başlama tarihidir, boş ve ya geçmiş bir tarih girerseniz hemen başlatır. Eğer yukarıda gördüğünüz MailTestAddress alanına bir adres girerseniz zamanlayıcı yok sayılır.Format : 27.01.2018 14:07) MailType (Artık sadece HTML tipinde mail gönderiyoruz. Boş ve ya "H" geçiniz.) MailSubject (Mail kampanyanızın konusu) MailBody (Mail kampanyanızın HTML kodları) HTML kodlarınız üyelikten ayrılma linki içermek zorundadır. Üyelikten ayrılmak için burayı tıklayınız SenderId (Gönderen hesaplarınız arasında seçim yapabilirsiniz.Varsayılan gönderen hesabınız 0 dır.) MemberGroups Üyelerinizi eklerken veya süzerken başka amaçlar için kullanmak üzere ayırır yani gruplarsınız. Her grubun bir numarası olur ve numaraları grubu oluşturduğunuz zaman edinirsiniz. Buraya grup numaralarını virgül "," ile ayırarak "1354, 1359, 1648" şeklinde geçerek hedef kitlenizi gruplara özel belirleyebilirsiniz.Kolaylaştırmak için eklenmiş ve zorunlu olmayan bu metoda "0" sıfır geçerek yok sayabilirsiniz. ProcessType 3 farklı veriyi kabul eder 1.DataOnly: Gönderdiğiniz json içinde sadece datalar üzerinde işlem yapın.Üyeleri aktarır, günceller, gruplar ve bilgi döndürür. Kampanya bilgileri girseniz bile kampanya başlatmaz. 2.ThisOnly: Gönderdiğiniz json dosyasındaki dataları işler ve sadece bu datalara toplu email kampanyası başlatır. Bu dosyada olmayan adresler yok sayılır. 3.AllDatabase: Gönderdiğiniz json dosyasındaki dataları işler ve daha sonra SegmentationFilter alanındaki süzme işleminize göre tüm database alıcılarını süzerek toplu email kampanyası başlatır.Dikkatli kullanılması gereken bir seçenektir. Listid Gönderdiğiniz her dataya bir listid numarası atayın. Bu şekilde her datayı ayrı ayrı veya farklı zamanlarda birleştirmek üzere gruplayabilirsiniz. Örnek: Aşağıdaki Örnek JSON'u post ettiğinizde üyelerinizi ekler&günceller, gruplar&gruba dahil eder, email kampanyasını başlatır ve size bilgilerini döndürür. api.postatr.com/api.asmx/StartProcess { "MyData": { "Username": "nac256984", "Password": "nakliyat25", "EncryptedId": "12FD86F-871D-GG7BAC4", "MailBody": "...", "SenderId": "0", "MailDescription": "Kampanyanın bize özel açıklaması", "SegmentationFilter": "1=2", "ProcessType": "DataOnly", "ListId": "468c1222-428a-4acf-b269-3eaf090979a4", "StartDate": "2019-04-14 18:59:59", "MailTestAddress": "", "MailType": "H", "MemberGroups": "0", "MailSubject": "Kampanyanın konusu", "Members": { "Member": [ { "Memberid": "e119a55b-3119-42f0-a5f4-899c6454abf3", "FName": "TestAd1", "LName": "TestSoyad1", "Email": "test1@postatr.com", "MyColumns": { "bagissifresi": "test1", "uyekodu": "123456", "subject": "Test Konu max 99 char", "message": "Test Mesaj max 250 char" } }, { "Memberid": "E55AE773-3E93-4619-AA86-067C73281AA0", "FName": "TestAd2", "LName": "TestSoyad2", "Email": "test2@postatr.com", "MyColumns": { "bagissifresi": "test2", "uyekodu": "123456", "subject": "Test Konu max 99 char", "message": "Test Mesaj max 250 char" } }, { "Memberid": "f119a55b-3119-42f0-a5f4-899c6454abf4", "FName": "TestAd3", "LName": "TestSoyad3", "Email": "test3@postatr.com", "MyColumns": { "bagissifresi": "test3", "uyekodu": "123456", "subject": "Test Konu max 99 char", "message": "Test Mesaj max 250 char" } } ] } } } Dönen bilgiler : campid: Eğer işleminiz bir kampanya başlattıysa bu kampanyanın numarası döner. inserted: Yeni eklenen üye sayısı updated: Zaten kayıtlı olduğu için güncellenen üye sayısı ignored: Email adresi veya gerekli başka bir verisi hatalı olan üye sayısı ignored_details: Hatalı ve işlenmeyen üyelerin detayları ErrorCode: Hata kodu varsa buradaki değeri okuyun. Hata kodları ihtiyaç duyabileceğiniz bazı hata kodlarını aşağıda görüntüleyebilirsiniz. Burada olmayan bir hata alıyorsanız lütfen iletişime geçin. 1 : Login veya Token Geçersiz 2 : Yetkisiz Kullanıcı 3 : Çıkış linki bulunamadı 4 : Segmentationfilter bu şekilde kullanılamaz 5 : Kayıtlı filtre bulunamadı 7 : Segmentationfilter boş olamaz 9 : Kampanya başlatılamıyor. Lütfen parametreleri kontrol ediniz. 18 : İşlemleriniz doğru yapıldı ama kampanya başlatılamadı. Belirttiğiniz kriterde kayıt bulunamıyor. SegmentationFilter alanınız sonuç üretmiyor. 19 : Kampanya başlatmak için veriler uygun değil 40 : Kampanya yok veya henüz işlenmedi 41 : Bu kampanya bilgilerine erişim yetkiniz yok. 42 : Kampanya detaylarına ulaşılamıyor. 49 : Kampanya bilgileri alınamıyor 71 : Mail Subject bulunamadı 72 : Mail Subject çok kısa 80 : Hiç kayıtlı gönderen hesabı yok 81 : Gönderen hesapları alınamıyor 82 : SenderId tamsayı olmalıdır. 83 : Bu gönderen hesabını kullanamazsınız. 91 : Bu kullanıcı belirtilen işlemi yapamıyor. 92 : Bu email adresi belirtilen işlemi yapamıyor. 93 : Çok fazla sayıda üyeyi aynı anda raporlamaya çalışıyorsunuz. 95 : Bu JSON dosyayı çözülemiyor. Serileştirme işleminizi kontrol edin. 96 : Bu JSON dosyayındaki üyeler alınamıyor. Serileştirme işleminizi kontrol edin. 97 : Bu JSON dosyayından hiç bir üye eklenmedi & güncellenmedi. 101 : ProcessType alanı hatalı veya hiç gönderilmemiş. Gönderilen bilgilerle ne yapılacağı anlaşılmıyor. 102 : ProcessType alanı gönderilmiş ancak karşılığı tanımsız. "DataOnly", "ThisOnly", "AllDatabase" geçmelisiniz.