嵌入:将电话交换机集成到您的软件中
如果您有CRM、技术服务程序或任何Web应用程序,可以在您的界面中打开交换机屏幕和网络电话。通过这种方式,可以嵌入实时通话、通话记录、语音记录、休息、自动拨号、号码屏蔽和浏览器电话。
无需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. 身份验证
a) 在 iframe 中登录
默认方法。用户在首次打开时在框架中输入电子邮件和密码;如果启用了双重验证,还会询问代码。会话仅对该嵌入代码和选定屏幕有效。
某些浏览器(尤其是Safari)会完全阻止其他网站框架中的Cookies。在这种情况下,在登录屏幕上 在新窗口中打开 链接已移除。请使用签名链接以获得永久解决方案。
b) 从服务器获取签名链接(推荐)
您的CRM用户已经在自己的系统中登录。您的服务器从Buluthat为该用户提供 2 分钟有效,单次使用 获取一个登录链接并在 iframe 中 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: 测试密钥。
c) 无需登录模式
嵌入代码以您选择的用户身份无密码打开。为此有两个条件:
- 请求必须来自您允许的域名的框架。
- 如果您愿意,也可以要求来自您的 IP 列表。
警告: wk_ 由于代码在页面源代码中,因此此模式的安全性较低。仅适用于您内部网络中的屏幕,权限有限的 员工 使用您的帐户。
5. JavaScript API 和事件
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 | 高度。数字(px)或 CSS 值;默认 100% |
autoHeight | true 则框架内容的高度将适应 |
点击拨打示例(jQuery):
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
消息仅从 Buluthat 服务器的地址接受。Buluthat 也只监听来自您授权域名的命令。
6. 安全说明
- 嵌入会话保存在单独的cookie中,仅打开选定的屏幕。订阅、支付、密码和API密钥屏幕在嵌入时永远不会打开。
- 每次登录和嵌入代码更改都由客户进行 交易历史'怎么写。'
- 删除或关闭嵌入代码会立即在所有使用它的页面上关闭屏幕。
- 请勿将您的 API 密钥放入浏览器代码、移动应用或公共存储库中。 详情: API 安全.
