Ruxsatlar va xatolar
Eng kam ruxsatni bering va ochiq APIʼning barcha barqaror xato kodlarini qayta ishlang.
Eng kam ruxsatni bering va ochiq APIʼning barcha barqaror xato kodlarini qayta ishlang.
Har bir ochiq API amali bitta aniq ruxsat talab qiladi. Shu ruxsati yo‘q haqiqiy hisob maʼlumoti 403 insufficient_scope oladi; unga kengroq kirish hech qachon yashirincha berilmaydi.
Ruxsatlar maʼlumotnomasi#
| Ruxsat | Imkon beradi |
|---|---|
account:read | Autentifikatsiya qilingan hisob, tarif, huquqlar va hamyon xulosasini o‘qish |
tickets:read | Yordam chiptalari va ularning xabarlarini o‘qish |
tickets:write | Chiptalarni yangilash, jamoadoshlarga biriktirish va ichki izoh yoki mijozga javob qo‘shish |
team:read | Jamoa aʼzolari, kutilayotgan takliflar va ruxsat etilgan audit hodisalarini o‘qish |
team:write | Taklif yaratish yoki bekor qilish va ega bo‘lmagan jamoa rollarini boshqarish |
integrations:read | Ruxsat berilgan GitHub App o‘rnatmalari va repozitoriylarini ko‘rish |
integrations:write | Integratsiya o‘zgarishlarini tayyorlash va qoralama pull requestlar yaratish |
sites:read | Saytlarni ro‘yxatlash va olish |
sites:write | Sayt yaratish, yangilash, nashr qilish, nashrdan olish va o‘chirish |
agents:read | Agent sozlamalarini o‘qish |
agents:write | Agent xulqi, tili, ovozi va embed sozlamalarini yangilash |
knowledge:read | Bilim manbalari va FAQʼlarni ro‘yxatlash |
knowledge:write | Bilim manbalari va FAQʼlarni yaratish, yangilash va o‘chirish |
conversations:read | Suhbatlarni ro‘yxatlash va xabarlarini olish |
conversations:write | Suhbatni o‘z qo‘lingizga olish: tashrifchiga biznes nomidan javob berish, unda agentni pauzaga qo‘yish va qaytarish |
leads:read | Yig‘ilgan lidlarni ro‘yxatlash |
leads:write | Lid yaratish, yangilash, qualify qilish va imkoniyat pipelineʼiga qabul qilish |
pipeline:read | Bosqich, hisob, imkoniyat, faollik, atributsiya va CRM sinxron holatini o‘qish |
pipeline:write | Bosqich sozlash, hisob/imkoniyat yaratish yoki yangilash, CRM natijasini import/qayta urinish |
analytics:read | Sayt tahlil hodisalarini o‘qish |
connectors:read | Sirlarni qaytarmasdan konnektor holatini ro‘yxatlash |
connectors:write | Konnektor yaratish, yangilash, yoqish, o‘chirish va olib tashlash |
domains:read | Olib tashlangan. Faqat moslik uchun saqlangan; maxsus domenlar taklif etilmagani uchun har bir /domains yo‘li 409 qaytaradi |
domains:write | Olib tashlangan. Faqat moslik uchun saqlangan; har bir /domains yo‘li 409 qaytaradi |
broadcasts:read | Ommaviy xabar va yetkazish holatini ro‘yxatlash |
broadcasts:write | Qoralama yaratish va ommaviy yuborishni navbatga qo‘yish |
notifications:read | Ega bildirishnomalarini ro‘yxatlash |
notifications:write | Bildirishnomani o‘qilgan yoki o‘qilmagan deb belgilash |
monetization:read | Monetizatsiya mahsulotlarini ro‘yxatlash |
monetization:write | Mahsulot yaratish, yangilash, faollashtirish, faolsizlantirish va o‘chirish |
usage:read | O‘lchangan foydalanish hodisalarini o‘qish |
webhooks:read | Webhook endpointlari va yetkazish holatini ro‘yxatlash |
webhooks:write | Webhook endpointini yaratish va o‘chirish |
Hisobot vazifalari uchun o‘qish ruxsatlarini ishlating. Faqat integratsiya o‘sha o‘zgarishni bajarsa yozish ruxsatini qo‘shing. Masalan, lid eksportiga odatda sites:read va leads:read kerak, sites:write yoki agents:write emas.
Ruxsat xatolari#
{
"error": {
"code": "insufficient_scope",
"message": "The API key does not grant the required scope.",
"details": { "required": ["sites:write"] },
"request_id": "6c0b2f2e-..."
}
}Yetishmayotgan ruxsatni Sozlamalar → Dasturchilar uchun → Tahrirlash orqali kalitga qo‘shing yoki yangi kalit yaratib, server sirini yangilang. Tahrirlash kalit nomi va ruxsatlarini joyida o‘zgartiradi; uning amal muddati va tokeni o‘zgarmaydi. OAuth orqali berilgan kalitlarni tahrirlab bo‘lmaydi; ilovaga berilgan ruxsatlarni o‘zgartirish uchun uni qayta ulang.
Xato qobig‘i#
Barcha API xatolari bir xil yuqori darajadagi tuzilmani ishlatadi:
type ApiError = {
error: {
code: string;
message: string;
details?: unknown;
request_id: string;
};
};Inglizcha messageni taqqoslamasdan error.code bo‘yicha shoxlansin. Xabarlar versiya o‘zgarmasdan yaxshilanishi mumkin. Amal nomi, holat va urinish bilan error.request_id hamda x-request-id javob sarlavhasini log qiling, ammo authorization sarlavhasi yoki so‘rov sirlarini hech qachon yozmang.
Holat va kod maʼlumotnomasi#
| HTTP | Barqaror kod | Maʼnosi | Odatiy javob |
|---|---|---|---|
400 | invalid_request | Tekshiruv ishlamadi yoki maydon qo‘llab-quvvatlanmaydi | detailsdagi maydonlarni to‘g‘rilang; o‘zgarmagan kiritma bilan qayta urinmang |
400 | invalid_json | Tana JSON obyekt emas yoki noto‘g‘ri JSON | Bitta haqiqiy JSON obyekt yuboring |
401 | authentication_required | Bearer sarlavhasi yo‘q | Server hisob maʼlumotini qo‘shing |
401 | invalid_api_key | Kalit noto‘g‘ri, muddati tugagan, bekor qilingan yoki egasi yo‘q | Kalitni almashtiring yoki yangilang |
403 | subscription_required | Egasida faol pullik tarif yo‘q | Qayta urinishdan oldin obunani tiklang |
403 | insufficient_scope | Hisob maʼlumotida amal ruxsati yo‘q | Eng kam ruxsatli yangi hisob maʼlumoti yarating |
404 | not_found | Endpoint yoki egaga tegishli resurs topilmadi | Yo‘l va tenantga tegishli IDʼni tekshiring |
409 | conflict | Joriy resurs holati amalga to‘sqinlik qiladi | Qayta urinishdan oldin joriy holatni o‘qing |
413 | payload_too_large | JSON tanasi 256 KB so‘rov chegarasidan oshadi | Kichikroq tana yuboring; katta kontentni bir nechta so‘rovga bo‘ling |
415 | invalid_request | O‘zgartirish tanasi application/json emas | Content-Type: application/json yuboring |
429 | rate_limit_exceeded | Kalitning bir daqiqalik tarif oynasi to‘lgan | Retry-Afterni kuting va tasodifiy og‘ish qo‘llang |
500 | internal_error | So‘rovni yakunlab bo‘lmadi | Xavfsiz yoki idempotent amalni qayta urinib, request IDʼni xabar qiling |
503 | outcome_unknown | O‘zgarish bajarilgan bo‘lishi mumkin, lekin natijasini qayd etib bo‘lmadi; details.retryable false | Qayta urinmang. O‘zgarish bo‘lgan-bo‘lmaganini bilish uchun resursni o‘qing; bir xil idempotency kaliti shu natijani qaytarishda davom etadi |
Boshqa tenantdagi resurs mavjudligini oshkor qilmaslik uchun hisob egasidan tashqaridagi resurslar 404 qaytarishi mumkin.
Tekshiruv tafsilotlari#
Maydon tekshiruvi o‘z forma boshqaruvingiz yonida ko‘rsatish mumkin bo‘lgan yo‘llarni qaytaradi:
{
"error": {
"code": "invalid_request",
"message": "Request validation failed.",
"details": [
{ "path": "content.headline", "message": "String must contain at least 1 character(s)" }
],
"request_id": "6c0b2f2e-..."
}
}O‘zgartirish tanalari JSON obyekt bo‘lishi kerak. Array, bo‘sh tana, form data va text content type bilan yuborilgan JSON rad etiladi.
Qayta urinish qarorlari#
429dan keyinRetry-Afterko‘rsatgan soniya kutib qayta urining.500ni faqat xavfsiz o‘qish yoki bir xilIdempotency-Keybilan himoyalangan yozishda qayta urining.- Jarayondagi idempotency
409xatosidan keyin uningRetry-After: 2sarlavhasiga ko‘ra qayta urining. 503 outcome_unknownni hech qachon ko‘r-ko‘rona qayta urinmang. Avval resursni tekshiring; yangi idempotency kalitidan faqat o‘zgarish bo‘lmaganini tasdiqlagach foydalaning.- Sabab o‘zgarmaguncha
400,401,403,404,413yoki holat ziddiyatini qayta urinmang.
Kutish tartibi uchun So‘rov tezligi cheklovlari, har amal ruxsati uchun API maʼlumotnomasiga qarang.