Logo Site EngageLab Mark Colored Transparent文件
搜尋

Website 進階使用指南

Website 通道支援基於 LiveDesk Widget SDK 介面,或採用 iframe 方式進行更多設定,以滿足使用者需求。

iframe 相關設定

略過歡迎畫面

支援使用者在 iframe 模式下透過新增參數 action=autoStart,略過氣泡開啟時的歡迎畫面,直接進入聊天框進行對話。

<iframe class="livedesk-widget-iframe" src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart" // website_token 填寫建立通道後產生的對應值 title="Live desk" allow="camera;microphone" />
              
              <iframe
    class="livedesk-widget-iframe"
    src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart" // website_token 填寫建立通道後產生的對應值
    title="Live desk"
    allow="camera;microphone"
/>

            
此代碼塊在浮窗中顯示

設定 User ID

提供兩種方式進行設定:

方法一:

Array.from(document.getElementsByTagName('iframe')) .filter((iframe) => iframe.src && iframe.src.includes('livedesk')) .forEach((iframe) => iframe.contentWindow?.postMessage( 'livedesk-widget:' + JSON.stringify({ event: 'set-user', identifier: 'your_user_id', user: { name: '顯示名稱', email: 'user@example.com' }, }), '*', ), );
              
              Array.from(document.getElementsByTagName('iframe'))
.filter((iframe) => iframe.src && iframe.src.includes('livedesk'))
.forEach((iframe) =>
iframe.contentWindow?.postMessage(
'livedesk-widget:' +
JSON.stringify({
event: 'set-user',
identifier: 'your_user_id',
user: { name: '顯示名稱', email: 'user@example.com' },
}),
'*',
),
);

            
此代碼塊在浮窗中顯示

方法二:在 iframe 中新增參數:user_id=xxxxx

<iframe class="livedesk-widget-iframe" src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=Etsz4XtvqKi7iqbHf8Ma6ZLR&action=autoStart&user_id=5002" title="LiveDesk" allow="camera;microphone" />
              
                  <iframe
      class="livedesk-widget-iframe"
      src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=Etsz4XtvqKi7iqbHf8Ma6ZLR&action=autoStart&user_id=5002"
      title="LiveDesk"
      allow="camera;microphone"
    />

            
此代碼塊在浮窗中顯示

LiveDesk Widget SDK 介面

設定 User ID 及使用者資訊(一般模式)

window.addEventListener("livedesk:ready", function () { window.$livedesk.setUserId("使用者唯一 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.setUserId("使用者唯一 ID(例如 user_id)", {  // 第一個參數為唯一識別碼
    email: "user@example.com",
    name: "使用者姓名",
    avatar_url: "https://example.com/avatar.jpg",  // 可選
    phone_number: "+1234567890"  // 可選
  });
});

            
此代碼塊在浮窗中顯示

注意: 如果設定中是由終端使用者觸發操作來設定 User ID,則可移除 window.addEventListener("livedesk:ready", function ()) 事件設定。

設定 User ID 及使用者資訊(加密模式)

啟用身分驗證(建議):為防止偽造並確保會話可跨瀏覽器持續存在,請在設定中啟用 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.setUserId("使用者唯一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.setUserId("使用者唯一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"
});

            
此代碼塊在浮窗中顯示
  • 這些自訂變數會顯示於 livedesk - 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           // 範例:數字類型
  });
});

            
此代碼塊在浮窗中顯示
  • 這些自訂變數會顯示於「livedesk - 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); });
Icon Solid Transparent White Qiyu
聯繫銷售