اضغط على Enter.
احصل على بياناتك.
REST API /api/v1 و53 نطاقًا و239 نقطة نهاية و11 حدث webhook وواجهة برمجة تطبيقات JS للأداة. الدردشات وجهات الاتصال والذكاء الاصطناعي وقاعدة المعرفة والتذاكر والفوترة - أيًا كان ما تفعله لوحة التحكم، يمكن للتعليمات البرمجية الخاصة بك أن تفعله أيضًا.
# اضغط على Enter أو العلامة الموجودة على اليمين $ curl -H "Authorization: Bearer sb_••••" \ https://smartbtn.me/api/v1/chats?limit=1
بداية سريعة
ثلاث خطوات من الصفر إلى الإجابة الأولى. يرتبط كل طلب بعنصر واجهة مستخدم واحد ويتم المصادقة عليه باستخدام رمز مميز لحامله.
- إصدار رمز مميزلوحة المعلومات → رموز API المميزة: الاسم وانتهاء الصلاحية الاختياري والنطاقات التي تحتاجها. ينتمي الرمز المميز إلى عنصر واجهة مستخدم واحد بالضبط. يتم عرض رمز النص العادي مرة واحدة؛ يقوم Smartbtn بتخزين تجزئة أحادية الاتجاه فقط، لذلك لا يمكن استرداد الرمز المفقود - فقط يتم إبطاله وإعادة إصداره.
- قم بتشغيل واجهة برمجة تطبيقات القطعةفي إعدادات عنصر واجهة المستخدم، قم بتشغيل «السماح بواجهة برمجة تطبيقات عنصر واجهة المستخدم (JS وREST)». لا يؤدي إصدار رمز مميز إلى قلب هذا المفتاح نيابةً عنك.
- أرسل الطلب الأولينتقل الرمز المميز فقط إلى رأس
Authorization- وليس إلى عنوان URL مطلقًا.
# قائمة الدردشات القطعة curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \ https://smartbtn.me/api/v1/chats
// 200 OK · ترقيم الصفحات المؤشر { "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ], "next_cursor": "eyJpZCI6NDgyMTB9" // null — في الصفحة الأخيرة }
https://smartbtn.me/api/v1 هو نقطة النهاية الأساسية لواجهة برمجة التطبيقات لجميع بيانات المشروع. قم دائمًا بإرسال الطلبات عبر HTTPS وعدم إعادة توجيه الرمز المميز أبدًا عند عمليات إعادة التوجيه.401 أو 403 باستخدام نص RFC‑7807 application/problem+json - راجع الأخطاء.المصادقة
ثلاثة مسارات، اعتمادا على من يتصل بمن. يتم رفض الوصول افتراضيًا: لا يوجد نطاق — لا يوجد اتصال.
يحمل كل طلب التفويض: حامل . على الخادم، يتحول الرمز المميز إلى عنصر واجهة مستخدم واحد ونطاقاته.
يتم توقيع الطلبات الصادرة باستخدام سر لكل مستأجر: X‑Smartbtn‑Signature. يمكن إضافة بيانات اعتماد حامل إضافية إذا كان جانبك يحتاج إلى واحدة.
يستخدم POST /v1/ai/replies إطارًا موقعًا خاصًا به، مثبتًا على مشغل الذكاء الاصطناعي وعنصر واجهة المستخدم الخاص بك، ويتم ربطه بواسطة causation_id المتين.
ينسى الناس التبديل
يؤدي «السماح بواجهة برمجة تطبيقات القطعة (JS وREST)» في إعدادات القطعة إلى فتح كل من REST API وواجهة برمجة تطبيقات القطعة JS. إصدار رمز مميز لا يمكّن من ذلك. يمكن تحرير نطاقات المفتاح الحالي في لوحة المعلومات (رموز واجهة برمجة التطبيقات → المفتاح → تحرير النطاقات) بدون إعادة إصدار - تستمر عمليات التكامل في العمل.
الإعدادات المسبقة
| محددة مسبقا | النطاقات | متى |
|---|---|---|
| إعداد الذكاء الاصطناعي 9 | widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:read | يقوم تطبيق الذكاء الاصطناعي الخاص بك بتكوين الأداة: المساعد، وقاعدة المعرفة، والنصوص. يستبدل اختيار النطاق بأكمله. |
| للقراءة فقط (مجموعة الأمثلة) | chats:read · messages:read · contacts:read · stats:read | لوحات المعلومات، BI، الصادرات. |
| جسر مكتب المساعدة (مجموعة الأمثلة) | chats:read · messages:read · messages:write · webhooks:write · support:read | قم بنسخ مربعات الحوار والتذاكر في نظام إدارة علاقات العملاء (CRM) الخاص بك. |
ai:credentials:write إلا عندما يأذن المالك بإعداد مفتاح الموفر. ليست هناك حاجة إلى حقوق الحساب والفوترة والشريك لإعداد الذكاء الاصطناعي. يظهر المفتاح مرة واحدة - قم بإلغائه عند الانتهاء من الإعداد.النطاقات
53 نطاقًا للمسار، بالإضافة إلى نطاق مشروط وآخر محجوز. ينجح الطلب فقط إذا كان الرمز المميز يحمل نطاق المسار (أو بديلاً مدرجًا).
| النطاق | المنح |
|---|---|
| chats · 2 | |
| chats:read | قراءة الدردشات والبيانات الوصفية الخاصة بها |
| chats:write | قم بإغلاق محادثة أو طلب تقييم أو نقل أو مطالبة أو إرفاق أو فصل وكيل |
| messages · 2 | |
| messages:read | قراءة سجل رسائل الدردشة |
| messages:write | إرسال الرسائل وكتابة المؤشرات وقراءة الإيصالات كوكيل |
| contacts · 2 | |
| contacts:read | قراءة جهات الاتصال |
| contacts:write | تحديث حقول الاتصال والسمات |
| agents · 3 | |
| agents:read | قراءة الوكلاء ووجودهم |
| agents:writeحساس | دعوة الوكلاء أو تحديثهم أو تعليقهم أو استعادتهم أو إزالتهم؛ يرى المدعو كل محادثة في الأداة |
| agents:events:read | اقرأ سجل أحداث الوكيل والمقاييس الخاصة بكل وكيل |
| tags · 2 | |
| tags:read | قراءة العلامات |
| tags:write | إرفاق العلامات بجهة اتصال |
| files · 2 | |
| files:read | قم بتنزيل ملف تم تحميله |
| files:write | تحميل ملف جديد |
| stats · 1 | |
| stats:read | قراءة إجمالي الدردشة والرسائل وإحصائيات التقييم |
| channels · 3 | |
| channels:read | اقرأ حالة القناة المخصصة عبر الإنترنت |
| channels:write | تسليم رسالة واردة على قناة مخصصة |
| channels:register | تسجيل قناة مخصصة جديدة (التطبيقات المثبتة فقط) |
| webhooks · 2 | |
| webhooks:read | قائمة اشتراكات webhook |
| webhooks:write | إنشاء أو حذف أو إعادة تسليم الاشتراك |
| quick_phrases · 2 | |
| quick_phrases:read | اقرأ العبارات السريعة للوكيل |
| quick_phrases:write | إنشاء أو تعديل أو حذف العبارات السريعة |
| ratings · 1 | |
| ratings:read | اقرأ تقييمات الزوار والوكيل الذي يسجله كل واحد |
| responder · 2 | |
| responder:injectحساس | أدخل ردًا في الدردشة المباشرة كمشغل أو روبوت خارجي يعمل بالذكاء الاصطناعي |
| responder:escalateمشروط | بالنسبة إلى POST /v1/ai/replies: التسليم الموجه للمتصل عبر التصعيد = صحيح |
| widget · 2 | |
| widget:read | قراءة مظهر القطعة والسلوك وإعدادات التضمين |
| widget:write | قم بتحديث إعدادات عنصر واجهة المستخدم ومسح ذاكرة التخزين المؤقت لعنصر واجهة المستخدم |
| departments · 2 | |
| departments:read | قراءة الإدارات ووكلائها والجداول الزمنية |
| departments:write | إنشاء وتحديث أو حذف الأقسام والجداول الزمنية |
| messengers · 2 | |
| messengers:read | اقرأ أي برامج المراسلة متصلة (بدون بيانات الاعتماد) |
| messengers:writeحساس | ربط أو قطع اتصال رسول. يكتب بيانات اعتماد المزود |
| ai · 4 | |
| ai:read | اقرأ مساعدي الذكاء الاصطناعي وتكويناتهم وتنبيهاتهم |
| ai:write | إنشاء وتحديث المساعدين، وإعدادات الذكاء الاصطناعي ومشغلي الذكاء الاصطناعي، بما في ذلك الشخصية والموجه |
| ai:credentials:writeحساس | تخزين بيانات اعتماد موفر LLM التابع لجهة خارجية (BYOK) |
| ai:apply | الموافقة على التحسين الذي يعيد كتابة شخصية المساعد المباشر |
| kb · 2 | |
| kb:read | اقرأ قواعد قاعدة المعرفة والمصادر المستوعبة |
| kb:write | إنشاء أو تحديث أو حذف قواعد ومصادر قاعدة المعارف |
| transcripts · 1 | |
| transcripts:read | تصدير نص الدردشة |
| account · 2 | |
| account:read | اقرأ الملف التعريفي للحساب وكافة كياناته القانونية |
| account:write | قم بتحديث اسم الحساب واللقب والهاتف فقط |
| billing · 2 | |
| billing:read | اقرأ سجلات فواتير الأداة والكيانات القانونية |
| billing:write | إنشاء وتحديث وحذف الكيانات القانونية؛ لا يصدر أي فواتير، ولا ينقل أي أموال |
| partners · 2 | |
| partners:read | قراءة بيانات الشريك والإحالة |
| partners:withdrawمحفوظة | محجوز: لا توجد عملية دفع تستخدمه اليوم |
| support · 4 | |
| support:read | اقرأ التذاكر والمحادثات النشطة ورسائلهم والإجراءات المدققة الخاصة بهم |
| support:replyحساس | أجب على العميل كمشغل الدعم |
| support:write | قم بالمطالبة بالدردشة أو إطلاقها، أغلقها دون رد، أعد فتحها |
| support:tickets:close | أغلق التذكرة فقط - لا شيء آخر |
| marketing · 2 | |
| marketing:read | قراءة الحملات التسويقية: اللافتات، والنوافذ المنبثقة، والبريد الإلكتروني |
| marketing:write | إنشاء وتحرير الحملات، وتغيير الحالة، وبدء إرسال بريد إلكتروني |
| broadcasts · 2 | |
| broadcasts:read | قراءة عمليات بث المراسلة (WhatsApp وTelegram وMessenger وViber وVK وMAX) |
| broadcasts:write | إنشاء وتحرير وبدء البث |
| problems · 2 | |
| problems:read | اقرأ مجموعات وإعدادات مشكلات العملاء |
| problems:write | تغيير الإعدادات وحالة المجموعة: جديد، قيد التقدم، تم حله، متكرر |
| invitations · 2 | |
| invitations:read | اقرأ قواعد الدعوة ومتغيرات A/B والقوالب ومسار التحويل |
| invitations:write | إنشاء القواعد والقوالب أو تحريرها أو تمكينها أو حذفها |
نقاط النهاية
السطح العام كله في قائمة واحدة. قم بالتصفية حسب المورد، والبحث حسب المسار، وانقر فوق صف لنسخ تجعيد جاهز.
ai المساعدون، المشغلون، المفاتيح، التعلم، السوق54
chats الحوارات والرسائل والنقل والتقييمات18
kb قاعدة المعرفة: القواعد، الزاحف، الملفات، البحث16
agents الوكلاء، الدعوات، المقاييس14
messengers برامج المراسلة والشبكات الاجتماعية وقنوات السوق13
billing الرصيد، الاشتراكات، الفواتير، الجهات12
support وكيل الدعم: التذاكر والمحادثات12
widget الإعدادات، اللغة، الترجمات، الأسطح، ذاكرة التخزين المؤقت12
channels القنوات المخصصة8
external‑operators الروبوت الخاص بك كمشغل8
webhook‑subscriptions اشتراكات الويب هوك8
broadcasts بث ماسنجر7
departments الأقسام والجدول الزمني7
invitations دعوات ذكية7
marketing الحملات التسويقية7
partner برنامج الشريك7
wishes التمنيات لمنظمة العفو الدولية7
contacts جهات الاتصال والعلامات5
problems تحليلات مشكلة العملاء4
quick‑phrases عبارات سريعة4
compat توافق الهجرة3
stats الإحصائيات3
account الحساب2
files ملفات2
ratings التقييمات1
tags العلامات1
v1 1
webhook‑events كتالوج الأحداث1
ترتبط المسارات بـ https://smartbtn.me/api. تحتاج عمليات الكتابة إلى Content‑Type: application/json وX‑Smartbtn‑Idempotency‑Key. مجموعة compat هي طبقة توافق للفرق التي تنتقل من منصة دردشة أخرى.
خطافات الويب
JSON POST مُوقع إلى عنوان URL الخاص بك عند حدوث حدث مشترك. إدارة الاشتراكات عبر /v1/webhook‑subscriptions أو في لوحة التحكم.
{
"id": "evt_01JAB3K9Q7",
"type": "ticket.created",
"data": {
"button_guid": "b_3f9c2e",
"ticket_number": 10482,
"chat_id": 48211,
"client_id": 9134,
"reason": "human_request",
"priority": "high",
"sla_hours": 4,
"source": "chat",
"created_at": "2026-10-17T10:15:00+03:00"
}
}السبب: human_request | الفواتير | ai_unresolved | action_request | …; الأولوية: عالية | طبيعي؛ المصدر: دردشة | التطبيق | موقع. اقرأ التذكرة ومربع الحوار الخاص بها باستخدام GET /v1/support/tickets/{number}.
رؤوس التسليم
| X‑Smartbtn‑Event | نوع الحدث، على سبيل المثال. message.created. |
| X‑Smartbtn‑Signature | sha256=v1: للجسم الخام. |
| X‑Smartbtn‑Idempotency‑Key | قيمة واحدة لكل حدث، ثابتة عبر المحاولات. تخلص منه. |
| X‑Smartbtn‑Delivery | قيمة واحدة لكل محاولة تسليم — لسجلاتك. |
| X‑Smartbtn‑Timestamp | يونكس وقت الإرسال. معلوماتية، غير موقعة. |
التحقق من التوقيع
HMAC‑SHA256 للنص الخام (البايتات كما تم استلامها، قبل تحليل JSON) مع سر نقطة النهاية الخاصة بك؛ مقارنة في وقت ثابت. يظهر السر مرة واحدة، عند إنشاء الاشتراك؛ قم بتدويرها باستخدام POST /v1/webhook‑subscriptions/{id}/rotate‑secret.
// Node.js · على سبيل المثال، السر هو عنصر نائب import crypto from 'node:crypto'; function verify(rawBody, header, secret) { const expected = 'sha256=v1:' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); const a = Buffer.from(expected), b = Buffer.from(header || ''); return a.length === b.length && crypto.timingSafeEqual(a, b); }
// PHP $expected = 'sha256=v1:' . hash_hmac('sha256', file_get_contents('php://input'), $secret); if (!hash_equals($expected, $_SERVER['HTTP_X_SMARTBTN_SIGNATURE'] ?? '')) { http_response_code(401); exit; }
إعادة المحاولة والنظام
- ما يصل إلى 4 محاولات (الإرسال الأول بالإضافة إلى 3 محاولات إعادة)، والتراجع
min(60, 2^attempt × 5)ثانية — حوالي 10، 20، 40 ثانية. - يتم احتساب غير 2xx أو المهلة كمحاولة فاشلة. يمكن إعادة إرسال عمليات التسليم الفاشلة باستخدام
POST /v1/webhook‑subscriptions/{id}/redeliver— نفس مفتاح الكفاءة، ومعرف التسليم الجديد. - يتم التسليم مرة واحدة على الأقل ولم يتم طلبه. الحمولات ضئيلة - المعرفات، وليست السجلات الكاملة؛ جلب التفاصيل عبر REST API.
JS API
قم بتمرير ما تعرفه بالفعل عن الزائر مباشرة إلى الوكيل. يتم قبول المكالمات فقط من النطاق المحدد في إعدادات القطعة.
smartbtn_widget_api.setContactInfo(info)
يضبط بيانات الاتصال الخاصة بالزائر. يرى الوكيل الأمر كما لو أن الزائر قد ملأ نموذج المقدمة. يلعب الاسم والهاتف والبريد الإلكتروني دورًا خاصًا في Smartbtn، ومن ثم فهي طريقة منفصلة.
| الاسم | اكتب | الوصف |
|---|---|---|
| name | string | اسم الزائر |
| string | البريد الإلكتروني للزائر | |
| phone | string | هاتف الزائر |
| description | string | أي معلومات إضافية عن العميل |
Smartbtn_api.setClientInfo({ name: "أليكس مورغان", email: "email@example.com", phone: "+17584987855", description: "Description text" });
smartbtn_widget_api.setCustomData(fields)
أي بيانات إضافية للوحة المعلومات الموجودة على يمين تطبيق الوكيل. يمكنك الاتصال بها بقدر ما تريد — في مربع حوار مفتوح، يتم تحديث اللوحة في الوقت الفعلي. تظهر الحقول بترتيب المصفوفة.
| الاسم | اكتب | الوصف |
|---|---|---|
| fields | array | قائمة حقول البيانات |
| field.title | string | يتجه فوق الميدان |
| field.content | string | المحتوى الميداني يتم الهروب من العلامات |
| field.link | string | تم فتح عنوان URL عند النقر |
Smartbtn_api.setClientCustomData([ { title: "Order", content: "#10482 · 3 items", link: "https://shop.example/orders/10482" }, { title: "Actions", content: "Open customer profile", link: "https://crm.example/c/9134" } ]);
smartbtn_widget_api.setSkin(skin, opts) · open() · close()
قم بتبديل سمة الأداة بسرعة دون إعادة تحميل الصفحة (classic, minimal, capsule, liquid) أو التحكم في نافذة الدردشة برمجيًا. للتخصيص الدائم لكل مشروع، قم بتمرير نفس الحقول إلى PATCH /v1/widget/settings.
// JS API · تبديل الجلد على الصفحة في الوقت الحقيقي smartbtn_widget_api.setSkin("minimal"); smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "الردود خلال ~ 1 ثانية" }); // REST API · PATCH /v1/widget/settings (النطاق widget:write) { "skin": "minimal", "widget_header_align": "center", "widget_show_operator_avatars": false, "widget_show_tabs_bar": false, "chat_bg": "#FAF8F5", "capsule_title": "Smartbtn AI", "capsule_subtitle": "أون لاين 24/7" }
widget_api_contact_sync، تُطلق هذه الاستدعاءات أيضًا خطاف الويب contact.updated.Support‑agent API
يعمل وكيل الدعم الآلي على قائمة انتظار التذاكر ومحادثات العملاء: يقوم بإجراء محادثة، ويجيب كموظف الدعم البشري الخاص بك، ويغلق التذكرة. متوقف حتى يقوم مالك القطعة بتشغيله.
- المالك يتيح ذلكيسرد الرموز المميزة المسموح لها بالعمل كوكلاء دعم وعناوين IP التي يمكنهم الاتصال منها.
- قراءة قائمة الانتظار
GET /v1/support/tickets·GET /v1/support/chats - استئجار الدردشة
POST …/chats/{id}/claim·…/release - ردنص عادي، يرتبط فقط بالمضيفين المسموح لهم بالأداة.
201فقط بمجرد تخزين الرسالة. - إغلاق أو إعادة فتح
POST …/tickets/{number}/close·…/reopen
| النطاق | يسمح |
|---|---|
| support:read | التذاكر، والمحادثات النشطة، والرسائل التي تحمل علامة العميل / ai / الدعم / النظام، والإجراءات المدققة الخاصة |
| support:write | المطالبة / تحرير الدردشة، إغلاق دون رد، إعادة فتح |
| support:reply | أجب على العميل كمشغل الدعم (حساس) |
| support:tickets:close | أغلق التذكرة فقط - للحصول على زر «تم حل السؤال» في الواجهة الخلفية لديك |
curl -X POST https://smartbtn.me/api/v1/support/chats/48211/reply \ -H "Authorization: Bearer $AGENT_TOKEN" \ -H "Content-Type: application/json" \ -H "X-Smartbtn-Idempotency-Key: $(uuidgen)" \ -d '{"text":"تم، تمت استعادة الوصول."}'
واجهة برمجة تطبيقات الذكاء الاصطناعي
كل ما يفعله قسم الذكاء الاصطناعي في لوحة المعلومات: المساعدون، ومفاتيح الموفر الخاصة بك، وقاعدة المعرفة، والتعلم الذاتي مع التراجع، والرغبات، والمشكلات، وإشارات الطلب، ومساعد داخل تطبيقك.
العديد من المساعدين مع دورهم ولغتهم الخاصة، واختبار قبل بدء البث المباشر، ويتم تسمية المشغلين حسب اللغة.
- GET/v1/ai/assistants
- POST/v1/ai/assistants/{id}/test
- PATCH/v1/ai/operators/{id}
- POST/v1/ai/handoff
Claude أو ChatGPT أو DeepSeek أو Gemini أو Mistral أو LLMs الإقليمية أو أي برنامج متوافق مع OpenAI. يتم سرد النماذج لكل مفتاح.
- GET/v1/ai/credentials
- POST/v1/ai/credentials
- GET/v1/ai/credentials/{id}/models
زاحف لموقعك، وتحميل ملفات PDF وDOCX، والقواعد، وحالة البحث والفهرسة.
- PUT/v1/kb/crawler
- POST/v1/kb/uploads
- POST/v1/kb/rules
- GET/v1/kb/search
ضبط عمليات التشغيل والدورات والتاريخ وإصدارات الشخصية مع التراجع ومفتاح القتل.
- POST/v1/ai/learning/tune
- GET/v1/ai/learning/cycles
- POST/v1/ai/learning/persona‑versions/{version}/revert
- GET/v1/ai/learning/kill‑switch
أمنية بكلمات واضحة ← معاينة خالية من التأثيرات الجانبية ← الموافقة أو الرفض أو الرجوع.
- POST/v1/wishes
- GET/v1/wishes/{id}/preview
- POST/v1/wishes/{id}/approve
- POST/v1/wishes/{id}/revert
مجموعات المشكلات ذات الحالات والحد الأقصى للإنفاق الشهري؛ ما طلبه العملاء ولم تقدمه.
- GET/v1/problems
- PATCH/v1/problems/settings
- POST/v1/problems/{id}/status
- GET/v1/ai/demand‑signals
تقوم الواجهة الخلفية لديك بدفع حالة العميل (مسجل، مدفوع، عميل منذ ذلك الحين، حالة الخدمة) في طلب موقع من HMAC - يقيسه الذكاء الاصطناعي عند الرد والتصعيد.
- POST/v1/ai/customer‑status
- POST/v1/ai/tickets
- GET/v1/ai/alerts
يتحول الحوار، وربط الحساب، وتحويل الكلام إلى نص، وتحويل النص إلى كلام، وتذاكر التطبيقات - عبر تكامل موقع.
- POST/v1/ai/assistant/turn
- POST/v1/ai/assistant/account‑link
- POST/v1/ai/assistant/speech‑to‑text
- POST/v1/ai/assistant/text‑to‑speech
مساعدين جاهزين حسب التخصص: مقهى، عيادة، متجر، خدمة سيارات. التقديم في طلب واحد.
- GET/v1/ai/marketplace/templates
- POST/v1/ai/marketplace/templates/{slug}/apply
يجيب الروبوت الخاص بك على الدردشات: ردود غير متزامنة، وعمليات التسليم، والاختبارات، ودورة الحياة.
- POST/v1/ai/replies
- POST/v1/external‑operators/{public_id}/tests
- POST/v1/external‑operators/{public_id}/lifecycle
حدود المعدل
لكل رمز مميز، هناك عدادان: يتم حساب عمليات القراءة والكتابة بشكل منفصل، وبالتالي فإن الاقتراع لا يلتهم ميزانية الكتابة أبدًا.
| X‑RateLimit‑Limit | حجم العداد تم احتساب هذا الطلب فيه (600 أو 120) |
| X‑RateLimit‑Remaining | الطلبات المتبقية في النافذة الحالية |
| X‑RateLimit‑Reset | عندما يتم إعادة تعيين النافذة |
| Retry‑After | على 429: ثواني للانتظار |
HTTP/1.1 429 Too Many Requests Content-Type: application/problem+json Retry-After: 12 X-RateLimit-Limit: 120 X-RateLimit-Remaining: 0 { "status": 429, "title": "Too Many Requests", "reason": "rate_limited" }
/v1/ai/assistant/tickets/status و/v1/ai/assistant/account‑link لديهم عدادات خاصة بهم؛ يمكن أن تحتوي واجهة برمجة تطبيقات وكيل الدعم على تجاوز لكل عنصر واجهة مستخدم.
أخطاء
كل خطأ هو RFC‑7807 application/problem+json: حالة وسبب يمكن قراءته بواسطة الآلة، وتفاصيل يمكن قراءتها بواسطة الإنسان.
HTTP/1.1 403 · Content-Type: application/problem+json { "type": "https://smartbtn.me/problems/forbidden", "title": "Forbidden", "status": 403, "detail": "Token lacks scope chats:write.", "required_scopes": [ "chats:write" ], "hint": "Dashboard → API tokens → key → Edit scopes" }
تسمي الهيئة المطلوبة_النطاقات ومكان منحها. لا حاجة لإعادة إصدار المفتاح.
| الحالة | معنى |
|---|---|
| 400 | طلب تالف أو مفتاح العجز المطلوب مفقود |
| 401 | لا يوجد رمز مميز أو رمز غير صالح أو تم إبطاله |
| 403 | الرمز يفتقر إلى النطاق؛ يضيف الجسم required_scopes ومكان منحه |
| 404 | لم يتم العثور على هذه القطعة |
| 405 | الطريقة غير مسموح بها - التوقف والإبلاغ؛ لا تبحث عن يكتب بديل |
| 409 | إعادة استخدام مفتاح العجز خلال 24 ساعة، أو تعارض الدولة |
| 422 | فشل التحقق من الصحة (على سبيل المثال، تم إرسال حقل للقراءة فقط) |
| 429 | الحد الأقصى للسعر؛ احترام إعادة المحاولة بعد |
العجز
الشبكات تفشل. المفتاح يجعل إعادة محاولة الكتابة آمنة: لا يتم تطبيق نفس العملية مرتين أبدًا.
- أرسل
X‑Smartbtn‑Idempotency‑Keyفي كل POST / PATCH / PUT / DELETE: معرف UUID جديد لعملية جديدة، نفس المفتاح لإعادة محاولة نفس العملية. - العمليات التي تحمل علامة
x‑idempotency: Requiredفي OpenAPI: لا يوجد مفتاح → 400، تتم إعادة استخدام المفتاح خلال 24 ساعة → 409 (ليس نجاحاً مخبأً). - لست متأكدا من أنها مرت؟ اقرأ الدولة أولا. لا تقم أبدًا بتغيير المفتاح تلقائيًا؛ احترام إعادة المحاولة بعد.
- يقوم
502من موفر الخدمة الأولية بتحرير المفتاح - أعد المحاولة باستخدام نفس المفتاح.
KEY=$(uuidgen) curl -X PATCH https://smartbtn.me/api/v1/widget/settings \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ -H "Content-Type: application/json" \ -H "X-Smartbtn-Idempotency-Key: $KEY" \ -d '{"language":"ru"}' # خطأ في الشبكة؟ كرر بنفس $KEY
Changelog
التغييرات على واجهة برمجة التطبيقات العامة وخطافات الويب في عام 2026. كل شيء أدناه إضافي ويظل في v1.
تم إنشاء تذكرة حدث مباشر جديدة. الحصول على /v1/support/tickets يجيب على أي مفتاح مع الدعم: اقرأ حتى يتم تكوين وكيل الدعم. النطاقات الرئيسية قابلة للتحرير دون إعادة إصدارها. 403 المكاسب المطلوبة_النطاقات.
يقبل POST/PATCH /v1/ai/operators name_i18n؛ تتم ترجمة الأسماء الافتراضية إلى لغة القطعة؛ اختيار تحية يمكن التنبؤ به.
القراءة - 600 في الدقيقة، والكتابة - 120. ولم يعد الاقتراع يأكل ميزانية الكتابة. X‑RateLimit-* يصف العداد الذي تم استخدامه.
محادثات مع النشاط منذ لحظة، مهما كان عمرها. تحمل كل محادثة الآن last_message_at.
chat.account.email_requested — الدردشة تنتظر العنوان؛ يجب ألا يبدأ الوكلاء تدفق تعليمات برمجية آخر.
أغلق تذكرة ولا شيء آخر - للحصول على زر «تم حل السؤال» في الواجهة الخلفية لديك.
عوامل التصفية has_client_messages=1 وq (2–100 حرف).
POST /v1/ai/assistant/account‑link و/revoc. متوقف حتى يمكّنه المالك.
يتم تضمين القواعد مع مفتاح القطعة أو مفتاح مساعد ممكّن؛ 502 يطلق مفتاح العجز.
يكون الحساب مرئيًا أثناء فتح التذكرة ولمدة 7 أيام بعد ذلك.
مجموعة /v1/support الجديدة: قائمة الانتظار، والمحادثات، والإيجارات، والردود، وإغلاق التذاكر وإعادة فتحها. متوقف حتى يمكّنه المالك.
الحقول code_pending وcode_expires_at وlast_code_result وlast_code_at.
البرنامج المساعد ووردبريس
القطعة على موقع WordPress دون لمس رمز الموضوع.
- تحميلأرشيف البرنامج المساعد إلى جهاز الكمبيوتر الخاص بك.
- تثبيتضع المجلد الذي تم فك حزمته في
wp‑content/plugins/- أو قم بتحميله في مسؤول WordPress. - تفعيليظهر عنصر Smartbtn في القائمة.
- الصق الرمز المميزانسخ رمز الأمان من إعدادات الأداة في لوحة التحكم الخاصة بك.
عندما تقوم بتغيير كلمة المرور الخاصة بك، يتغير رمز الأمان أيضًا ويتوقف الرمز القديم عن العمل - الصق الرمز الجديد في المكون الإضافي.
عينات التعليمات البرمجية
قم بإدراج كل محادثة مع النشاط منذ آخر استطلاع لك — مع اتباع المؤشر حتى النهاية.
# الصفحة الأولى curl -G https://smartbtn.me/api/v1/chats \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ --data-urlencode "updated_since=2026-10-17T09:00:00+03:00" # التالي - مع المؤشر التالي من الاستجابة curl -G https://smartbtn.me/api/v1/chats \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ --data-urlencode "cursor=eyJpZCI6NDgyMDd9"