التضمين: أدرج لوحة التحكم في برنامجك
إذا كان لديك عنوان 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% |
autoHeight | true إذاً يتناسب مع ارتفاع محتوى الإطار |
مثال النقر-الاتصال (jQuery):
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
تُقبل الرسائل فقط من عنوان خادم Buluthat. Buluthat تستمع فقط للأوامر الواردة من أسماء النطاق المصرح بها.
6. ملاحظات الأمان
- تُحفظ جلسة التضمين في ملف تعريف ارتباط منفصل وتفتح فقط الشاشات المحددة. لن تفتح شاشات الاشتراك والدفع وكلمة المرور ومفتاح API أبداً في التضمين.
- كل تسجيل دخول وتغيير كود التضمين للعميل سجل المعاملات'يكتب.'
- حذف أو إغلاق كود التضمين يغلق الشاشة على جميع الصفحات التي تستخدمه على الفور.
- لا تضع مفتاح API الخاص بك في كود المتصفح أو التطبيق المحمول أو مستودع عام. التفاصيل: أمان API.
