Yetkilendirme

Bu aşamada, Bonder’in ortağı olduğunuzu ve Kullanıcı adı, Parola ve API İstemcisi adının Destekleme Bölümümüz tarafından tarafınıza iletildiğini varsaymaktayız.
  • Komut auth
  • Talep POST
curl -k -X POST \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d '{
  "username" : "USERNAME",
  "password" : "PASSWORD",
  "client" : "API_CLIENT_NAME",
  "rpt" : "10000"
}' \
"https:// {{API_URL}} /auth" \
Yetkilendirme parametreleri
Parametre
Tip
Açıklama
username
string
API kullanıcısının adı
password
string
API parolası
client
string
API istemcisi adı
rpt
integer
token (RPT - Requests Per Token) başına düşen işlem sayısı rpt<1000, 100000>
Başarı HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {
    "token" : "access_token",
    "expire" : "1601241235"
  }
}
Cevap
Parametre
Tip
Açıklama
token
string
sizin token
expire
integer
tokena’nin sona erme tarihini içeren zaman tanımlayıcı expire=time()+3600
expire ve rpt indirilmektedir. Nihai değere ulaşacak ilk değişken token’i etkisizleştirecek.
Başarısızlık HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola, hatalı e-posta veya Hesap silindi veya mevcut değil
SERVER_OFFLINE_ERROR
Devam etmekte bakım nedeniyle sunucu devre dışı.
Yazılımın güncellenmesi mümkün
  • Tavsiye: 45-60 dk. sonra bir daha deneyin
AUTH_SERVICE_OFFLINE_ERROR
Tüm Kullanıcılar Yetkilendirme hizmetinden geçici olarak yararlanamamaktadır.
Yazılımın güncellenmesi mümkün
  • Tavsiye: 45-60 dk. sonra bir daha deneyin
API_SERVICE_OFFLINE_ERROR
API hizmetine geçici olarak erişilemez.
Yazılımın güncellenmesi mümkün
  • Tavsiye: 45-60 dk. sonra bir daha deneyin
ACCOUNT_INACTIVE_ERROR
API Hesabı asılmış veya silinecek
  • Tavsiyeler: Destekleme Bölümü ile irtibata geçin
INTERNAL_SERVER_ERROR
İç sunucu hatası
  • Tavsiye: denemeyi yenileyin
DATABASE_ERROR
Veri tabanına bağlantı hatası
  • Tavsiye: denemeyi yenileyin

Veri yapısı

Diğer komutları açıklamaya geçmeden önce Bonder tarafından kullanılan verilerin yapısını size anlatacağız.

Veri tipleri

veri tipleri
Tip
Açıklama
çok dilli
her dilde ayrı olarak kaydedilmeli
çevrilmez
ayrı tabloda bulundurularak, Kartvizite her dilde eklenir
Örneğin: Çevrilmez tipi email veya mobile değerleri değiştirilirse, Kartvizitin tüm dil versiyonları güncellenecek.

Kartvizit modları

Müşterinizin kişi değil, şirket olabildiği (örn. Tamamen-korkutmayan-dişçilik-hizmetleri) için displayName.en üst düzey değişkenini oluşturduk. Eğer !empty(displayName), Kartvizit İş modunda etkin olacak, name lastname position değişkenleri Kartvizitin oluşturulması sırasında göz önüne alınmayacak (buna rağmen sunucuda ilgili değerler korunacak).
Kartvizit modları
Mod
Şart
if (!empty(displayName)) {
businessMode = TRUE
}
şahsi
if (empty(displayName)) {
businessMode = FALSE
}
İngilizce versiyonunda, displayName değişkenine belirli değer bağlıdır, dolayısıyla sunucuda iletilen bilgiler kaydedilecek, fakat name lastname position Kartvizitin oluşturulması sırasında yoksayılacak. "en" : {
  "displayName" : "Non-scary-dental-services",
  "name" : "John",
  "lastname" : Kowalski",
  "position" : "CEO"
},
Lehçe versiyonunda, mobil cihazda Jan Kowalski adı Yönetim Kurulu Başkanı olarak görüntülenecek. "pl" : {
  "displayName" : "",
  "name" : "Jan",
  "lastname" : "Kowalski",
  "position" : "Prezes"
},
Bilgilerin bir kısmının sucuda korunmasına rağmen Rusça versiyonunun indirilmesi mümkün olmayacak. "ru" : {
  "displayName" : "",
  "name" : "",
  "lastname" : "Ковалский",
  "position" : "Директор"
}

Değişkenler

Sunucuya iletilmeden önce her değişken ön olarak doğrulanmalıdır. İletilen değişken değerinin, kendisine bağlı düzenli ifadeye uygun olmaması halinde, sunucu, buna null bağlayacak ve buna rağmen verilerin kaydedilmesi konusundaki success=true cevabını oluşturacak.
Değişkenler
Ad
Tip
Çok dilli
Açıklama
name
string
ad
  • Kartvizitin şahsi modda oluşturulması için gereken değişken
  • iş modunda kaydedilip de yoksayılan değişken
  • /^[a-zA-Z0-9]{2,25}$/
lastname
string
soyadı
  • iş modunda kaydedilip de yoksayılan değişken
  • iş modunda kaydedilip de yoksayılan değişken
  • /^[a-zA-Z0-9]{32,128}$/
displayName
string
görüntülenen ad
  • Kartvizitin iş modunda oluşturulması için gereken değişken
  • /^[a-zA-Z0-9]{32,128}$/
company
string
firma unvanı
  • /^[a-zA-Z0-9]{32,128}$/
position
string
görev
  • iş modunda kaydedilip de yoksayılan değişken
  • /^[a-zA-Z0-9]{32,128}$/
keywords
string
kişi veya firmayı en iyi şekilde tanımlayan anahtar kelimeler
  • separator işini gören virgül
  • /^[a-zA-Z0-9]{1,150}$/
thumbnail
string
kullanıcının resmi veya mobil cihazda görüntülenen logo
  • base64‘de kaydedilen görüntü
  • sabit boyut 300px x 300px
  • azami dosya büyüklüğü 50kB
phoneA
string
telefon numarası
  • ön sıfırlar ile numerik olmayan imler kesilecek
  • müşteri ülke alan kodunu belirtmelidir
  • “+” işareti önüne tarafımızdan eklenecek
  • /^[a-zA-Z0-9]{32,128}$/
phoneB
string
yukarıdaki gibi
mobileA
string
cep numarası
  • ön sıfırlar ile numerik olmayan imler kesilecek
  • müşteri ülke alan kodunu belirtmelidir
  • “+” işareti önüne tarafımızdan eklenecek
  • /^[a-zA-Z0-9]{32,128}$/
mobileB
string
yukarıdaki gibi
skypeA
string
skype kullanıcısının adı
  • /^[a-zA-Z0-9]{32,128}$/
skypeB
string
yukarıdaki gibi
faxA
string
faks numarası
  • ön sıfırlar ile numerik olmayan imler kesilecek
  • müşteri ülke alan kodunu belirtmelidir
  • “+” işareti önüne tarafımızdan eklenecek
  • /^[a-zA-Z0-9]{32,128}$/
faxB
string
yukarıdaki gibi
emailA
string
e-posta
emailB
string
yukarıdaki gibi
webA
string
URL
  • /^[a-zA-Z0-9]{32,128}$/
webB
string
yukarıdaki gibi
webC
string
yukarıdaki gibi
addrStreet
string
adres - cadde
  • /^[a-zA-Z0-9]{32,128}$/
addrCity
string
adres - şehir
  • /^[a-zA-Z0-9]{32,128}$/
addrState
string
adres - il / ilçe
  • /^[a-zA-Z0-9]{32,128}$/
addrZip
string
adres - posta kodu
  • /^[a-zA-Z0-9]{32,128}$/
addrCountry
string
adres - ülke
  • /^[a-zA-Z0-9]{32,128}$/

parametreler

Parametreler
Değişken
Tip
Açıklama
langStatus
integer
0 = off, 1 = on
Veriler silmeden dil versiyonunu etkinleştirin / etkisizleştirin
  • default = 0
usePhoto
integer
0 = off, 1 = on
Resim silmeden resmi etkinleştirin / etkisizleştirin
  • default = 1
cardStatus
integer
0 = off, 1 = on
Kartviziti silmeden Kartviziti etkinleştirin / etkisizleştirin
  • default = 1

Dil desteği

Bonder Kartvizitlerin 60’ın üzerindeki dil versiyonunda Kullanıcıları tarafından oluşturulmasını sağlar; API kullanıcıları da bu imkandan da yararlanabilirler. Bonder tarafından desteklenen, çevrilen dil kodlarını içeren ve kendi yazılımınızı hazırlarken kullanabileceğiniz veri havuzlarını sizin için hazırladık. Dil versiyonlarını yönetmek için lang değişkenini kullanmaktayız. Dil versiyonlarının eklenmesi, düzenlenmesi ve silinmesi için bu değişkeni kullanacaksınız.
  • Komut repositories
  • Talep GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories \
Başarı HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : [local, lang]
  }
}
langList
değer
Tip
Açıklama
lang
string
ISO 639-1:2002’e uygun dil kodu
local
string
diller listesi, örn.: en => English, ru => Русский
Örnek bir cevap Sunucu, erişilebilir veri havuzlarını verir: local, İngilizce, Rusça, Lehçe, Çince HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : ["local", "en", "ru", "pl", "zh"]
  }
}
Muhtaç olduğunuz kaynakları indirmek için langList’den değerleri uygulayın. Cevap her zaman anahtar : değer biçiminde gelecek.

Yerli dil adları listesini indirin

  • Komut repositories
  • Talep GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories/local" \
Başarı HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "pl" : "Polski",
    "en" : "English",
    "ru" : "Русский",
    ...,
    "anahtar" : "değer"
 }
}

Çevrilen dil adlarını indirin

  • Komut repositories
  • Talep GET
Yukarıdaki soruyu aşağıdaki örneğe uygun olarak değiştirin: "https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
Veri havuzumuzda istediğiniz kaynaklar mevcut değilse, durumu Destekleme Bölümü’ne bildirin. Mümkün olduğu kadar kısa zamanda eksiklikleri tamamlayacağız. Cevabımızı bekleyemezseniz, erişilebilir dil kodlarını indirip, tercüme işini yapmanızı tavsiye ederiz.
Başarısızlık HTTP/1.1 200OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola veya e-posta veya geçersiz token
  • Tavsiye: yetkilendirmeyi tekrarlayın
RESOURCE_NOT_FOUND_ERROR
Aradığınızı kaynak mevcut değil
  • Tavsiye: iletilen soruyu kontrol edin
diğer hatalar
Yetkilendirme bölümünde HATA-KODU’na bakınız

Yeni Profilin üretilmesi

  • Komut users
  • Talep post
curl -k -X POST \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users" \
Başarı HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "cardId" : string,
    "cardQrc" : string,
    "cardAddr" : string (url)
  }
}
SORU SONUCU
Değişken
Tip
Açıklama
cardId
string
oluşturulan Profil ile ilgili Kartvizit numarası
  • harf büyüklüğü göz önüne alınır
  • /^[a-zA-Z0-9]{32,128}$/
cardAddr
string
oluşturulmuş Kartvizitin adresi
cardQrc
string
Kartvizit adresinin base64’de kaydedilen QR kodunun adresi
cardId cardQrc cardAddr değişkenleri sunucunuzda muhafaza edilerek Profile bağlanmış olması gerekir. cardId değişkeni, API ile doğru iletişim için gereklidir.
Başarısızlık HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola veya e-posta veya geçersiz token
  • Tavsiye: yetkilendirmeyi tekrarlayın
PROFILE_LIMIT_REACHED_ERROR
Profil limiti tükendi
  • Tavsiye: Hesap Ayarlarının değiştirilmesi için Destekleme Bölümü ile temas edin
diğer hatalar
Yetkilendirme bölümünde HATA-KODU’na bakınız

Veriler kaydetme

  • Katı soru şablonlarını kullanmayız. Ancak güncellenmesi gereken bilgileri iletin.
  • Yeni Profilin üretilmesi için PUT komutunu kullanın.
  • lang anahtarlarını translatable bölümünde kullanarak dil ekleyin.
  • Müşteri dil versiyonunu tanımlamak istemezse, üniversal anlamına gelen lang=un ayarlayın.
  • Bir soruda beş dil versiyonuna kadar modifikasyon yapın (güncelleme, ekleme). 5’den fazla dil versiyonları yoksayılacak.
  • Komut users
  • Talep put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d ' {
cardStatus=0 iken, Kartvizit devre dışı edilecek; indirilmesi mümkün olmayacak.   "settings" : {
    "cardStatus" : "0",
    "usePhoto" : "1"
  },
  "translatable" : {
Diller arasında geçiş yapmak için langStatus kullanın.     "pl" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Dyrektor Zarządzający"
    },
Yeni dil eklenirken, langStatus=0 varsayımlı olarak ayarlanır. Dil eklenirken, bu ayar langStatus=1 bağlanarak tarafınızdan geçiştirilebilir.     "en" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Managing Director",
      "displayName" : "The Great John Connor",
      "keywords" : "steel, steel pipe, tubular products"
    },
langStatus=1 ayarlanmasına rağmen, (name!=null && lastname!=null) || displayName!=null şartı yerine getirilinceye kadar belirli dil indirilemez     "es" : {
      "langStatus" : "1",
      "name" : "John",
      "position" : "Director Ejecutivo"
    },
    "pt" : {
      "langStatus" : "1",
      "name" : "John",
      "lastname" : "Connor",
    },
    "ru" : {
      "langStatus" : "1",
      "name" : "",
      "lastname" : "Коннор",
    },
    "zh" : {
      "position" : "首席执行官"
    }
  },
  "non-translatable" : {
    "thumbnail" : "base64_encoded_image",
    "mobileA" : "123456789",
    "emailB" : "[email protected]"
  }
}
' \
"https:// {{API_URL}} /users/{{card_id}} \
Başarı HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [hata-kodu],
  "result" : {}
}
success=true mesajına rağmen, soruya profil resmini eklediğinizde hata mesajı sunucudan gelebilir.
hata-kodu
Hata
Açıklama
THUMBNAIL_REJECTED_ERROR
Bilgiler kaydedildi. Fakat iletilen resim sunucu tarafından reddedildi
  • Tavsiye: resimler üreticinizi kontrol edin
Başarısızlık HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola veya e-posta veya geçersiz token
  • Tavsiye: yetkilendirmeyi tekrarlayın
CARD_ID_NOT_FOUND_ERROR
cardId Kartviziti mevcut değil veya bunu değiştirmeye etmeye yetkili değilsiniz
  • Tavsiye: iletilen soruyu kontrol edin
diğer hatalar
Yetkilendirme bölümünde HATA-KODU’na bakınız

Ayarların modifikasyonu

Parametreler
Parametre
Tip
Açıklama
status
string
<enable, disable>

Kartvizit durumunu değiştirme

  • Komut users
  • Talep put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/cardStatus/{{status}}

Resim durumunu değiştirme

  • Komut users
  • Talep put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/usePhoto/{{status}}

Dil durumunu değiştirme

  • Komut users
  • Talep put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/langStatus/{{lang}}/{{status}}
Başarı HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Başarısızlık HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
tüm hatalar
Veriler Kaydetme bölümünde HATA-KODU’na bakınız

Veriler indirme

  • Komut users
  • Talep get
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}" \
Başarı HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
  "translatable" : {
    "lang" : {
      "langStatus" : "1",
      "anahtar" : "değer"
    },
    "lang" : {
      "langStatus" : "0",
      "anahtar" : "değer"
    }
  },
  "non-translatable" : {
    "thumbnail" : "base64_encoded_image",
    "anahtar" : "değer"
  },
  "settings" : {
    "cardStatus" : "1",
    "usePhoto" : "1",
    "cardQrc" : "base64_encoded_image",
    "cardAddr" : "URL",
    "usePhoto" : "1"
  }

}
Başarısızlık HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [hata-kodu],
  "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola veya e-posta veya geçersiz token
  • Tavsiye: yetkilendirmeyi tekrarlayın
CARD_ID_NOT_FOUND_ERROR
cardId Kartviziti mevcut değil veya bunu değiştirmeye etmeye yetkili değilsiniz
  • Tavsiye: iletilen soruyu kontrol edin
diğer hatalar
Yetkilendirme bölümünde HATA-KODU’na bakınız

Veriler silme

Dil silme

  • Komut users
  • Talep delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}/{{lang}}" \

Profil silme

  • Komut users
  • Talep delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}" \
Başarı HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
Başarısızlık HTTP/1.1 200 OK
{
 "success" : false,
 "errors" : [hata-kodu],
 "result" : {}
}
hata-kodu
Hata
Açıklama
INVALID_CREDENTIALS_ERROR
Hatalı Parola veya e-posta veya geçersiz token
  • Tavsiye: yetkilendirmeyi tekrarlayın
CARD_ID_NOT_FOUND_ERROR
cardId Kartviziti mevcut değil veya bunu değiştirmeye etmeye yetkili değilsiniz
  • Tavsiye: iletilen soruyu kontrol edin
diğer hatalar
Yetkilendirme bölümünde HATA-KODU’na bakınız