OAuth ma'lumotnomasi
Endpointlar
| Metod | Yo'l | Avtorizatsiya | Vazifa |
|---|---|---|---|
POST | /auth/oauth/auth | Yo'q | Client credentials |
POST | /auth/oauth/token | Yo'q | Kodni almashtirish yoki yangilash |
GET | /auth/oauth/client | Bearer (kirish sessiyasi) | Tasdiqlash ekrani uchun mijoz ma'lumoti |
POST | /auth/get-one-time-token | Bearer (foydalanuvchi sessiyasi) | Bir martalik token |
Hostlar:
| Muhit | Host |
|---|---|
| Prod | https://api.bito.uz |
| Dev | https://api.systematicdev.uz |
/auth/oauth/auth, /auth/oauth/token va /auth/oauth/client uchun chegara: bitta IP'dan daqiqasiga 20 so'rov. /auth/get-one-time-token bu chegaraga kirmaydi.
Integration API'da webhook/subscribe va webhook/unsubscribe soniyasiga 1 ta so'rov qabul qiladi.
Bito sizga nima yuboradi
| Hodisa | Metod | Qayerga | Tana |
|---|---|---|---|
| O'rnatish | POST | redirect_uri | { code, client_id, account_id } |
| O'chirish | POST | revoke_access_hook_uri | { account_id } |
| Ma'lumot o'zgarishi | POST | har bir webhook destination | { collection_name, action, id, organization_id } |
Birinchi ikkitasi client_secret'ingiz bilan imzolanadi (O'rnatish va o'chirish hooklari bo'limida X-Bito-Signature tekshiruvi tasvirlangan), uchinchisi esa Ma'lumot webhooklari bo'limida tavsiflangan.
Javob formati
Bito'ning har bir javobi — muvaffaqiyatli yoki xatoli — bir xil tuzilishga ega.
Muvaffaqiyat
json
{
"code": 0,
"message": "Success",
"messages": { "uz": "Muvaffaqiyatli", "ru": "...", "en": "..." },
"data": {},
"time": "2025-01-15T10:30:00.000Z"
}Xato
json
{
"code": 401,
"message": "Unauthorized user",
"messages": { "uz": "...", "ru": "...", "en": "Unauthorized user" },
"time": "2025-01-15T10:30:00.000Z"
}Muvaffaqiyatda code — 0. Xatoda unda xato kodi bo'ladi va data bo'lmaydi. Mantiqni code bo'yicha quring, message matni bo'yicha emas — u tarjima qilinadi.
Tez-tez uchraydigan xatolar
| HTTP | Xato | Ma'nosi | Yechim |
|---|---|---|---|
| 401 | Unauthorized | Authorization sarlavhasi yo'q yoki noto'g'ri | Bearer <access_token> yuboring |
| 401 | Token expired | Access token 24 soatdan oshgan | Yangilang |
| 401 | Unauthorized | Token ortidagi sessiya tugatilgan | Qayta avtorizatsiya qiling. Sirni yangilash aynan shuni qiladi. |
| 400 | Invalid credentials | client_id va client_secret mos emas yoki kod allaqachon ishlatilgan | Sirni tekshiring, yangi kod so'rang |
| 400 | Client not found | Bunday client_id bilan mijoz yo'q | Yaratishda olingan id'ni tekshiring |
| 400 | Auth code expired | 20 daqiqadan ko'p vaqt o'tdi | Oqimni qaytadan boshlang |
| 400 | Invalid scope | So'ralgan scope ma'lum qiymatlardan biri emas | Scope qiymatini tuzating |
| 429 | Too many requests | Bitta IP'dan daqiqasiga 20 dan ko'p so'rov | Tezlikni pasaytiring: tokenni faqat muddati tugaganda yangilang |