التضمين: أدرج لوحة التحكم في برنامجك

إذا كان لديك عنوان CRM، أو برنامج الخدمة الفنية، أو أي تطبيق ويب، يمكنك فتح شاشات المركز وهاتف الويب داخل واجهتك. يمكن تضمين المكالمات الحية، تسجيلات المكالمات، تسجيلات الصوت، التوقف، الاتصال التلقائي، حظر الأرقام والهاتف عبر المتصفح بهذه الطريقة.

لا حاجة لـ PHP. يعمل مع HTML عادي، jQuery، React أو أي إطار عمل آخر. تفتح الشاشات فقط في أسماء النطاق التي تحددها.

العنوان الأساسي: https://api.buluthat.com

1. أنشئ رمز التضمين

في اللوحة إجراءات الاشتراك > رموز التضمين (CRM) افتح الصفحة. إذا كنت وكيلًا، قم بذلك من لوحة الوكيل > التضمين وAPI من الصفحة، تقوم بذلك عن طريق اختيار العميل.

المنطقةالوصف
أسماء النطاقات المصرح بهاعنوان CRM الخاص بك، مثل. https://crm.firmaniz.com. اكتب عنوانًا في كل سطر. https://*.firmaniz.com إذا كتبت، ستشمل جميع النطاقات الفرعية. لن تفتح الشاشة في الموقع غير المدرج؛ يقوم المتصفح بذلك.
الشاشاتالشاشات التي ستظهر من لوحة التحكم. يمكن للمستخدم فتح هذه فقط.
الدخولتسجيل الدخول داخل iframe (افتراضي) أو بدون تسجيل. يعمل الرابط الموقع من الخادم في كلا الوضعين.
علامة تجاريةإذا كان علامة الوكيل مفتوحة، سيظهر اسم الوكيل وشعاره ولونه على الشاشات.

كود التضمين الخاص بك wk_ يبدأ بـ. هذا الرمز ليس سريًا؛ يظهر في مصدر صفحتك. يأتي من قائمة أسماء النطاقات المصرح بها وطرق الدخول أدناه.

2. الصق الرمز في صفحتك

سطر واحد

<div id="santral" style="height:720px"></div>
<script src="https://api.buluthat.com/assets/js/embed.js" data-key="wk_..." data-page="live_monitor" data-target="#santral"></script>

jQuery

<script src="https://api.buluthat.com/assets/js/embed.js"></script>
<script>
  $(function () {
    var santral = $('#santral').buluthat({ key: 'wk_...', page: 'report_calls' }).data('buluthat');
  });
</script>

إطار iframe عادي

<iframe src="https://api.buluthat.com/embed.php?w=wk_...&page=live_monitor"
        style="width:100%;height:720px;border:0" allow="microphone; autoplay"></iframe>

في iframe للهاتف الويب allow="microphone" شرط. embed.js يضيفها بنفسه.

3. الشاشات

pageشاشة
live_monitorتتبع المكالمات الحية
status_panelحالة المركز الحي
webphoneالهاتف الويب (الاتصال\/الرد من المتصفح)
report_callsالمكالمات وتسجيلات الصوت
report_recordingsتسجيلات الصوت
report_queue_liveمراقبة الطابور في الوقت الحقيقي
breaksإدارة الاستراحات
auto_callsالاتصال الآلي
mediaملفات الصوت
blocked_numbersحظر الأرقام
voice_otpالتحقق عبر الهاتف
contactsالدليل
voicebot_liveالمساعد الصوتي، المكالمات الحية
voicebot_sessionsتقرير مكالمة المساعد الصوتي
voicebot_inboxملاحظات المساعد
dialer_agentشاشة ممثل مبيعات الديالر
dashboardملخص يومي

4. المصادقة

أ) تسجيل الدخول داخل iframe

الطريقة الافتراضية. يكتب المستخدم بريده الإلكتروني وكلمة المرور داخل الإطار عند الفتح الأول؛ إذا كانت المصادقة الثنائية مفعلة، يُطلب أيضًا الرمز. الجلسة صالحة فقط لهذا الرمز المضمن والشاشات المختارة.

بعض المتصفحات (خصوصًا سفاري) تمنع ملفات تعريف الارتباط من مواقع أخرى تمامًا. في هذه الحالة، في شاشة تسجيل الدخول افتح في نافذة جديدة قم بإزالة الرابط. استخدم الرابط الموقّع كحل دائم.

مستخدم CRM الخاص بك قد سجل الدخول بالفعل في نظامك. خادمك من Buluthat لذلك المستخدم صالح لمدة 2 دقيقة، لمرة واحدة يستلم رابط دخول و src يعطي القيمة. المستخدم لا يدخل كلمة المرور أيضًا.

المفتاح: في حساب العميل مفاتيح API من الصفحة تضمين قم بإنشاء مفتاح شامل. إذا كنت وكيلًا، اذهب إلى لوحة الوكيل > التضمين وAPI > مفتاح API للوكيل استخدمه؛ هذا المفتاح صالح لجميع العملاء المرتبطين بك. يبقى المفتاح فقط على خادمك، ولا يذهب إلى المتصفح.

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'Authorization: Bearer bt_...' \
  -H 'Content-Type: application/json' \
  -d '{"widget":"wk_...","user_email":"temsilci@firma.com","extension":"1000","page":"webphone"}'

يمكن إجراء الطلب بنفس طريقة مفتاح الوكيل:

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'X-Bt-Partner-Key: bp_...' -H 'Content-Type: application/json' \
  -d '{"tenant_id":123,"user_email":"temsilci@musteri.com","page":"live_monitor"}'
المنطقةإلزاميالوصف
widgetلاكود التضمين (wk_...). إذا لم يتم تقديمه، سيتم استخدام رمز التضمين النشط الأول للعميل.
user_emailلاتسجل كعميل مسجل باستخدام هذا البريد الإلكتروني في اللوحة. الموظف له صلاحياته الخاصة أيضاً.
user_idلاuser_email يمكن استخدامها بدلاً من.
extensionلارقم داخلي سيستخدمه الهاتف الويب (مثل. 1000).
pageلاسيتم فتح الشاشة. يجب أن يكون مسموحًا في رمز التضمين.
tenant_idتاجرفقط باستخدام مفتاح التاجر: رقم العميل المرتبط بك.

إذا لم يتم إعطاء المستخدم، يتم استخدام المستخدم بدون تسجيل الدخول في كود التضمين، وإذا لم يكن هناك، يتم استخدام ممثل العميل.

الرد:

{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }

مثال PHP:

$ch = curl_init('https://api.buluthat.com/api/embed.php?action=session');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('BULUTHAT_KEY'), 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['widget' => 'wk_...', 'user_email' => $kullanici['email'], 'page' => 'live_monitor']),
]);
$cevap = json_decode(curl_exec($ch), true);
echo '<iframe src="' . htmlspecialchars($cevap['url']) . '" style="width:100%;height:720px;border:0" allow="microphone"></iframe>';

النقاط الأخرى:

  • GET ?action=widgets: يسرد رموز التضمين. باستخدام مفتاح الوكيل tenant_id مطلوب.
  • GET ?action=ping: يختبر المفتاح.

ج) وضع بدون تسجيل

يفتح كود التضمين كالمستخدم الذي اخترته بدون كلمة مرور. هناك شرطين لذلك:

  • يجب أن يأتي من إطار اسم النطاق المصرح به.
  • إذا أردت، يمكن أن يُشترط أن يأتي من قائمة IP الخاصة بك.

تحذير: wk_ هذا الوضع غير آمن نظرًا لأن الرمز موجود في مصدر الصفحة. فقط للشاشات داخل الشبكة الداخلية الخاصة بك، إذن محدود. موظف استخدم حسابك.

5. واجهة برمجة التطبيقات JavaScript والأحداث

var s = Buluthat.mount('#tel', { key: 'wk_...', page: 'webphone' });

s.dial('05321234567');           // web telefonundan ara
Buluthat.dial('05321234567');    // sayfadaki ilk web telefonundan ara
s.go('report_calls');            // ekran değiştir

s.on('call', function (c) {
  // c.state: idle | ringing | dialing | incall ; c.number: karşı numara
  if (c.state === 'ringing') { musteriKartiniAc(c.number); }
});
s.on('ready', function (d) { /* ekran yüklendi: d.page */ });
s.on('resize', function (d) { /* içerik yüksekliği: d.height */ });

mount الخيارات:

اختيارالوصف
keyكود التضمين
pageالشاشة الأولى
urlرابط موقّع (الذي حصلت عليه من الخادم) url); key تستخدم بدلاً من
heightالارتفاع. رقم (بكسل) أو قيمة CSS؛ الافتراضي 100%
autoHeighttrue إذاً يتناسب مع ارتفاع محتوى الإطار

مثال النقر-الاتصال (jQuery):

$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });

تُقبل الرسائل فقط من عنوان خادم Buluthat. Buluthat تستمع فقط للأوامر الواردة من أسماء النطاق المصرح بها.

6. ملاحظات الأمان

  • تُحفظ جلسة التضمين في ملف تعريف ارتباط منفصل وتفتح فقط الشاشات المحددة. لن تفتح شاشات الاشتراك والدفع وكلمة المرور ومفتاح API أبداً في التضمين.
  • كل تسجيل دخول وتغيير كود التضمين للعميل سجل المعاملات'يكتب.'
  • حذف أو إغلاق كود التضمين يغلق الشاشة على جميع الصفحات التي تستخدمه على الفور.
  • لا تضع مفتاح API الخاص بك في كود المتصفح أو التطبيق المحمول أو مستودع عام. التفاصيل: أمان API.