البدء
Integration overview
خلفية واحدة، لكل منصة. ادمجها مرة واحدة، وتبقى محدّثة دائمًا.
AskAIs هو خلفية واحدة مع طرق اتصال متعددة. تُعِدّ مساحة العمل الخاصة بك مرة واحدة، ثم تدمج الدردشة في أي مكان، موقع ويب، أو تطبيق جوّال، أو أي خدمة خلفية. كما يمكن لعملائك التواصل معك عبر قنوات واردة مثل Telegram وWhatsApp. كل عميل وكل قناة يتواصل مع نفس صندوق الوارد، ووكيل الذكاء الاصطناعي، وقاعدة المعرفة.
خلفية واحدة، لكل منصة
مهما كانت المنصة التي تستخدمها، فإن التثبيت قصير، كما أن المحادثة وجهة الاتصال وردود الذكاء الاصطناعي والإعدادات كلها مشتركة. إليك كيفية تثبيت كل منصة، والأهم من ذلك، كيف تحصل على التحديثات المستقبلية:
المنصات في لمحة
| المنصة | التثبيت | كيف تُحدَّث |
|---|---|---|
| موقع ويب | <script src="…/widget.js"> | تلقائيًا، كل تحميل للصفحة يجلب أحدث إصدار |
| iOS (WebView) | WebView embed | تلقائيًا، تُحمّل الـ WebView أحدث أداة |
| Android (WebView) | WebView embed | تلقائيًا، تُحمّل الـ WebView أحدث أداة |
| Flutter (SDK أصلي) | pub (local package) | ارفع إصدار الـ SDK، وأصدر نسخة جديدة من التطبيق |
| React Native (WebView) | WebView / REST | تلقائيًا، تُحمّل الـ WebView أحدث أداة |
| أي خلفية | REST API / OpenAPI | خدمتك الخاصة، متى ما نشرتها |
هل تعمل جميع العملاء والقنوات معًا؟
نعم. إنها أبواب أمامية مختلفة لنفس مساحة عمل AskAIs، لذا فهي متوافقة تمامًا فيما بينها:
- نفس الخلفية، نفس الـ app-id: كل عميل يتصل بنفس صندوق الوارد في مساحة عملك.
- زائر واحد عبر الأجهزة: عرّفه بنفس externalId لتستكمل دردشة بدأت على الويب داخل تطبيقك.
- ليست مجرد عمليات تضمين، بل قنوات واردة أيضًا: إلى جانب أداة الويب وداخل التطبيق، يمكن لعملائك التواصل معك عبر Telegram وWhatsApp (كلاهما يعمل من طرف إلى طرف)، وتصل كل رسالة إلى نفس صندوق الوارد، ومكان X جاهز.
- إعدادات مشتركة: يُضبَط وكيل الذكاء الاصطناعي (مُستضاف على المنصة أو بمفتاحك الخاص) وقاعدة المعرفة وساعات العمل وردود الكلمات المفتاحية والأسئلة الشائعة مرة واحدة وتنطبق على كل قناة.
الويب، التضمين الرسمي (موصى به)
أضف هذا السطر الواحد قبل </body>. هذا هو التثبيت بأكمله. الـ app-id عام وآمن للنشر؛ انسخه من Settings → Inboxes.
<script src="https://singchat.org/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://singchat.org"
async></script>⚠️ لا تنزّل widget.js أو تستضِفه بنفسك
حمّل الأداة دائمًا من https://singchat.org/widget.js. إذا نزّلت الملف واستضفته بنفسك، أو دمجته في حزمتك الخاصة، فإنك تجمّده عند إصدار واحد، ولن تصلك أبدًا تحديثات النمط المستقبلية وإصلاحات الأخطاء والميزات الجديدة. عند تحميلها من singchat.org، تُحدّث الأداة نفسها تلقائيًا، ولا تغيّر أنت أي شيء.
تحكّم بها من صفحتك (اختياري)
بعد تحميل السكربت، يصبح كائن عام window.SingChat متاحًا:
// Open / close the widget
window.SingChat.open();
window.SingChat.close();
// Identify a logged-in user (so chats follow them across devices)
window.SingChat.identify({ externalId: "user_123", name: "Ada", email: "ada@acme.com" });تطبيقات الجوّال: أداة Flutter أو تضمين WebView
للجوّال لديك ثلاث طرق حقيقية. أولًا، توفّر أداة Flutter الأصلية واجهة دردشة كاملة وقابلة للتخصيص (فقاعة عائمة وشاشة دردشة أصلية، وليست WebView)، أضِفها إلى ملف pubspec وأصدر التطبيق. ثانيًا، على iOS وAndroid (وReact Native) يمكنك تضمين أداة الويب كاملةً داخل WebView، بالتجربة نفسها الموجودة على الموقع، وتبقى محدّثة تلقائيًا. ثالثًا، استخدم الـ REST API مع خطافات ويب موقّعة وارسم واجهتك الخاصة. لا توجد أداة دردشة أصلية منفصلة لـ iOS أو Android أو React Native لتثبيتها، وهذه هي الطرق المدعومة.
# Flutter, native chat widget (floating bubble + native chat UI, not a WebView).
# In your app's pubspec.yaml (download and unzip the SDK package first):
dependencies:
singchat_widget:
path: ../singchat_widget
# iOS / Android / React Native without Flutter: load the hosted web widget in a
# WKWebView / WebView (same experience as the website), or drive the REST API
# with signed webhooks and render your own chat UI.أي خلفية أو لغة
لا حاجة إلى SDK، استدعِ الـ REST API مباشرة لتعريف جهة اتصال وإرسال الرسائل واستقبالها، وتحقّق من الأحداث الواردة عبر خطافات ويب موقّعة. تتبع الواجهة بالكامل مواصفة OpenAPI منشورة، لذا يمكنك توليد عميل بلغتك الخاصة أو استدعاء نقاط النهاية مباشرة.
# Any backend / language, talk to the REST API directly
curl -X POST https://singchat.org/api/v1/auth/identify \
-H 'Content-Type: application/json' \
-d '{"appId":"YOUR_APP_ID","externalId":"user_123"}'