Website高級用法指南
website通道支援基於LiveDesk Widget SDK 介面進行更多配置,滿足用戶需求。
LiveDesk Widget SDK介面
設置 Userid 及用戶資訊(普通模式)
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setUser("用戶唯一ID(如 user_id)", { // 第一個參數為唯一識別碼
email: "user@example.com",
name: "用戶姓名",
avatar_url: "https://example.com/avatar.jpg", // 可選
phone_number: "+1234567890" // 可選
});
});
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setUser("用戶唯一ID(如 user_id)", { // 第一個參數為唯一識別碼
email: "user@example.com",
name: "用戶姓名",
avatar_url: "https://example.com/avatar.jpg", // 可選
phone_number: "+1234567890" // 可選
});
});
此代碼塊在浮窗中顯示
設置 Userid 及用戶資訊(加密模式)
啟用身份驗證(推薦):為防止偽造和確保會話跨瀏覽器持久化,在配置中啟用 HMAC(使用 SHA256 生成 identifier_hash)。示例(JavaScript):
const crypto = require('crypto');
const key = '你的 HMAC Token'; // 從 Inboxes 設置複製
const message = '用戶唯一ID';
const identifier_hash = crypto.createHmac('sha256', key).update(message).digest('hex');
// 在 setUser 中附加
window.$livedesk.setUser("用戶唯一ID", {
...其他資訊,
identifier_hash: identifier_hash
});
const crypto = require('crypto');
const key = '你的 HMAC Token'; // 從 Inboxes 設置複製
const message = '用戶唯一ID';
const identifier_hash = crypto.createHmac('sha256', key).update(message).digest('hex');
// 在 setUser 中附加
window.$livedesk.setUser("用戶唯一ID", {
...其他資訊,
identifier_hash: identifier_hash
});
此代碼塊在浮窗中顯示
設置「對話自定義變數」
window.$livedesk.setConversationCustomAttributes({
utm_source: "google", // 示例:會話級 UTM
session_type: "support"
});
window.$livedesk.setConversationCustomAttributes({
utm_source: "google", // 示例:會話級 UTM
session_type: "support"
});
此代碼塊在浮窗中顯示
- 這些自定義變數在 livdesk - Conversation - 對話資訊中顯示。
設置「用戶自定義變數」
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setCustomAttributes({
pricing_plan: "premium", // key: 預定義的唯一標識,value: 根據類型設置(如字串)
signup_date: new Date(), // 示例:日期類型
account_id: 123 // 示例:數字類型
});
});
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setCustomAttributes({
pricing_plan: "premium", // key: 預定義的唯一標識,value: 根據類型設置(如字串)
signup_date: new Date(), // 示例:日期類型
account_id: 123 // 示例:數字類型
});
});
此代碼塊在浮窗中顯示
- 這些自定義變數在「 livdesk - Conversation - 聯絡人屬性」中顯示。
刪除用戶屬性
刪除指定的自定義屬性。
window.$livedesk.deleteCustomAttribute("pricing_plan");//string屬性鍵名
window.$livedesk.deleteCustomAttribute("pricing_plan");//string屬性鍵名
此代碼塊在浮窗中顯示
切換聊天氣泡的打開狀態
切換小工具的打開/關閉狀態。
window.$livdesk.toggle();
// Toggle widget by passing state
window.$livedesk.toggle("open"); // 打開聊天部件
window.$livedesk.toggle("close"); // 關閉聊天部件
window.$livdesk.toggle();
// Toggle widget by passing state
window.$livedesk.toggle("open"); // 打開聊天部件
window.$livedesk.toggle("close"); // 關閉聊天部件
此代碼塊在浮窗中顯示
顯示/隱藏聊天氣泡
window.$livedesk.toggleBubbleVisibility('hide');// show/hide
window.$livedesk.toggleBubbleVisibility('hide');// show/hide
此代碼塊在浮窗中顯示
彈窗模式
以彈出視窗模式打開聊天介面。
window.$livedesk.popoutChatWindow();
window.$livedesk.popoutChatWindow();
此代碼塊在浮窗中顯示
設置語言
設置小工具語言
window.$livedesk.setLocale("en");// string語言代碼,示例:zh-CN
window.$livedesk.setLocale("en");// string語言代碼,示例:zh-CN
此代碼塊在浮窗中顯示
添加/移除標籤
為當前會話添加標籤(對話未開始前),標籤將自動設置到對話中
window.$livdesk.setLabel('support-ticket');// string標籤識別碼
window.$livdesk.removeLabel('support-ticket');
window.$livdesk.setLabel('support-ticket');// string標籤識別碼
window.$livdesk.removeLabel('support-ticket');
此代碼塊在浮窗中顯示
Livedesk Widget 配置對象
初始化時(載入 SDK 前)設置的全域對象,用於自定義小工具行為。通過 window.livedeskSettings 定義,然後在 window.livedeskSDK.run() 中傳遞。
對象屬性
| 屬性名稱 | 類型 | 描述 | 預設值 | 示例 |
|---|---|---|---|---|
hideMessageBubble |
boolean | 隱藏訊息氣泡。 | false | true |
showUnreadMessagesDialog |
boolean | 顯示未讀訊息對話方塊。 | true | false |
position |
string | 小工具位置。 | 'right' | 'left' |
locale |
string | 預設語言代碼。 | 儀表板語言 | 'zh-CN' |
useBrowserLanguage |
boolean | 使用瀏覽器語言(忽略 locale)。 |
false | true |
type |
string | 小工具類型。 | 'standard' |
'expanded_bubble' |
darkMode |
boolean | 啟用暗黑模式。 | false | true |
baseDomain |
string | 基礎域名(可選,用於多域名)。 | - | 'example.com' |
launcherTitle |
string | 啟動器標題。 | - | '支援' |
showPopoutButton |
boolean | 顯示彈出按鈕。 | true | false |
welcomeTitle |
string | 歡迎標題。 | - | '歡迎!' |
welcomeDescription |
string | 歡迎描述。 | - | '如何幫助您?' |
availableMessage |
string | 線上訊息。 | - | '我們線上。' |
unavailableMessage |
string | 離線訊息。 | - | '我們稍後回復。' |
enableFileUpload |
boolean | 啟用檔上傳。 | true | false |
enableEmojiPicker |
boolean | 啟用表情選擇器。 | true | false |
enableEndConversation |
boolean | 啟用結束對話按鈕。 | true | false |
示例代碼
<script>
// 1. 在載入 sdk.js 之前,先設置全域配置(必須放在腳本最前面)
window.livedeskSettings = {
// 小工具位置:左下角(預設是右下角)
position: "left",
// 語言強制為簡體中文(即使瀏覽器是英文也會顯示中文)
locale: "zh-CN",
// 自動檢測瀏覽器語言(如果想優先用用戶瀏覽器語言,設為 true 並刪除上面的 locale)
// useBrowserLanguage: true,
// 小工具類型:expanded_bubble = 大氣泡(帶歡迎語),standard = 經典小氣泡
type: "expanded_bubble",
// 暗黑模式(自動跟隨系統或強制暗色)
darkMode: "auto", // 可選值:true | false | "auto"
// 隱藏底部的小氣泡圖示(適合放在自定義按鈕裡)
hideMessageBubble: false,
// 隱藏右下角的“彈出視窗”小箭頭按鈕
showPopoutButton: false,
// 自定義啟動器標題(大氣泡模式下顯示)
launcherTitle: "線上客服",
// 歡迎訊息(expanded_bubble 模式下生效)
welcomeTitle: "您好!有什麼可以幫助您的?",
welcomeDescription: "我們通常會在幾分鐘內回復~",
// 線上/離線時顯示的提示文字
availableMessage: "我們線上,隨時為您服務",
unavailableMessage: "我們當前不在線,會在上班時間儘快回復您",
// 功能開關
enableFileUpload: true, // 允許上傳檔案
enableEmojiPicker: true, // 允許使用表情
enableEndConversation: true, // 允許用戶主動結束對話
// 其他高級選項(視需求打開)
// showUnreadMessagesDialog: true, // 有未讀訊息時彈窗提醒(預設 true)
// baseDomain: "yourcompany.com", // 多域名部署時使用
};
</script>
<!-- 2. 載入 livedesk Widget SDK(替換成你自己的域名和 token)-->
<script>
(function(d,t) {
var BASE_URL="https://www.engagelab.com"; // ← 改成你的 livedesk 地址
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.livedeskSDK.run({
websiteToken: 'abcdefgh1234567890abcdefgh123456', // ← 改成你的 Website Token
baseUrl: BASE_URL
});
}
})(document,"script");
</script>
<script>
// 1. 在載入 sdk.js 之前,先設置全域配置(必須放在腳本最前面)
window.livedeskSettings = {
// 小工具位置:左下角(預設是右下角)
position: "left",
// 語言強制為簡體中文(即使瀏覽器是英文也會顯示中文)
locale: "zh-CN",
// 自動檢測瀏覽器語言(如果想優先用用戶瀏覽器語言,設為 true 並刪除上面的 locale)
// useBrowserLanguage: true,
// 小工具類型:expanded_bubble = 大氣泡(帶歡迎語),standard = 經典小氣泡
type: "expanded_bubble",
// 暗黑模式(自動跟隨系統或強制暗色)
darkMode: "auto", // 可選值:true | false | "auto"
// 隱藏底部的小氣泡圖示(適合放在自定義按鈕裡)
hideMessageBubble: false,
// 隱藏右下角的“彈出視窗”小箭頭按鈕
showPopoutButton: false,
// 自定義啟動器標題(大氣泡模式下顯示)
launcherTitle: "線上客服",
// 歡迎訊息(expanded_bubble 模式下生效)
welcomeTitle: "您好!有什麼可以幫助您的?",
welcomeDescription: "我們通常會在幾分鐘內回復~",
// 線上/離線時顯示的提示文字
availableMessage: "我們線上,隨時為您服務",
unavailableMessage: "我們當前不在線,會在上班時間儘快回復您",
// 功能開關
enableFileUpload: true, // 允許上傳檔案
enableEmojiPicker: true, // 允許使用表情
enableEndConversation: true, // 允許用戶主動結束對話
// 其他高級選項(視需求打開)
// showUnreadMessagesDialog: true, // 有未讀訊息時彈窗提醒(預設 true)
// baseDomain: "yourcompany.com", // 多域名部署時使用
};
</script>
<!-- 2. 載入 livedesk Widget SDK(替換成你自己的域名和 token)-->
<script>
(function(d,t) {
var BASE_URL="https://www.engagelab.com"; // ← 改成你的 livedesk 地址
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.livedeskSDK.run({
websiteToken: 'abcdefgh1234567890abcdefgh123456', // ← 改成你的 Website Token
baseUrl: BASE_URL
});
}
})(document,"script");
</script>
此代碼塊在浮窗中顯示
Livedesk Widget 事件監聽
| 事件名稱 | 描述 | 監聽示例 |
|---|---|---|
livedesk:ready |
SDK 完全載入完成,可安全調用方法。 | window.addEventListener('livedesk:ready', () => { /* 初始化 */ }); |
livedesk:on-message |
收到新訊息時觸發。 | window.addEventListener('livedesk:on-message', (data) => { console.log(data); }); |
livedesk:error |
SDK 發生錯誤時觸發(v2.3.0+)。 | window.addEventListener('livedesk:error', (error) => { console.error(error); }); |










