JavaScript API:ページからウィジェットを制御する
window.ReactiveChatの全コマンド:開閉、メッセージ送信、本人確認、吹き出しとカード、ツアー、セッション取得。引数、戻り値、読み込み前のキューを説明します。
ウィジェットは、単一のグローバルオブジェクトwindow.ReactiveChatを提供します。コマンドはすべて関数形式で呼び出します。
ReactiveChat('command', argument1, argument2);
基本コマンド(boot、shutdown、open、identify、update、trackなど)は一般的なチャットウィジェットに合わせ、移行の負担を減らしています。
読み込み前のキュー
ローダーが最初にReactiveChatを作り、コアの読み込みまで呼び出しをReactiveChat.qに記録します。コアは順番に実行し、失われる呼び出しはありません。
ローダータグより前に実行する可能性があれば、次を前に置きます。
window.ReactiveChat = window.ReactiveChat || function () {
(window.ReactiveChat.q = window.ReactiveChat.q || []).push(arguments);
};
注意点は2つです。
- 読み込み前の戻り値はすべて
undefinedです。 戻り値のあるgetSession、isOpen、tourなどは、ready後に使ってください(イベント)。 - コマンドは読み込みを発生させます。
boot、update、track、identify以外は、commandトリガーでコアを即座に読み込みます。早い段階のidentifyに追加負担はありません。
コマンドは例外を投げません。エラーはundefined、不明なコマンドは無視します(data-rc-debug="true"ではコンソールに表示)。
ReactiveChat('on', 'ready', function () {
var s = ReactiveChat('getSession');
console.log('Visitor', s && s.visitorId);
});
起動と終了
- boot
(cfg?: object)– 初回はscriptタグ属性と同じcamelCaseの設定({ siteKey, locale, theme, position, brand }など)で起動します。2回目以降はlocale、theme、dnd、autoOpen、strings、positionだけを反映します。キューにbootがなければコアが自動で呼びます。 - shutdown
()– ウィンドウ、接続、監視をこのページから削除し、ReactiveChatを単純なキューに戻します。ページを再読み込みせずに再起動する使い方は想定していません。
ReactiveChat('boot', { locale: 'en', theme: 'dark' });
ウィンドウ
- open
(opts?)– 開きます。optsは隣に表示する要素、またはオブジェクトです。 - anchor(要素、任意) – この隣に開く。なければ通常位置。
- message(文字列、任意) – 最大200文字を入力欄に入れ、送信はしません。
- tab(
msg|home|help、任意) – タブを選択。anchor自体のdata-rc-messageやdata-rc-tabも使い、明示した値を優先します。読み込み前の要求も記憶します。 - close
()– 閉じます。 - toggle
()– 切り替えます。 - isOpen
()→boolean。
document.querySelector('#hilfe').addEventListener('click', function (ev) {
ReactiveChat('open', { anchor: ev.currentTarget, message: 'Question about my order', tab: 'msg' });
});
メッセージと会話
- sendMessage
(text: string)– 訪問者が書いたように代理送信します。同じ上限です(上限)。訪問者の操作後だけ使い、勝手には送らないでください。 - newConversation
()– 新しい会話。 - leaveMessage
()– 不在時のメッセージフォーム。 - startConversation
(text: string, suche?: string)– 新しい会話を開始し、準備後にtextを送ります。Smart Answerが検索質問を引き継ぐために使います。 - continueConversation
(id: string, text: string)– 既存会話をtextで続けます。idは[0-9A-Za-z_-]{1,64}に一致しなければ新規会話です。Smart Answerの引き継ぎにも使います。
訪問者と状況情報
- identify
({ userId, email, name, userHash, exp })– ログイン済みユーザーを通知し、他のフィールドは破棄します。サーバーで計算した有効なuserHashがなければ未確認です。名前やメールは表示しても、顧客データや他人の履歴へのアクセスは許可しません。訪問者の本人確認参照。 - update
(attrs: object)– MousePlayer連携に属性を渡します。MousePlayer利用時のみ関係します。 - track
(name: string, meta?: object)– 節目の出来事を通知。meta内の許可された状況情報(url、path、title、page_type、product_id、variant_id、category、price、currency、cart_value、cart_items、in_stockなど)をAIや担当者へ渡し、他は破棄します。本人確認と状況情報参照。 - getSession
()→{ sessionId, visitorId, tabId }またはnull。 - getEndpoint
()→{ siteKey, wsUrl, apiBase, locale, visitorId }。同じ接続先が必要な独自スクリプト向け。 - portal
(basis?: string)→boolean。確認済み本人情報を渡して新しいタブに顧客ポータルを開きます。未確認ならfalse。basisは任意の独自オリジンで、https://を使います。
ReactiveChat('track', 'produkt_angesehen', {
page_type: 'product', product_id: 'SKU-4711', price: 49.9, currency: 'EUR', in_stock: true
});
言語とテーマ
- setLocale
(locale: 'de' | 'en' | 'pl')– 言語を切り替え、ブラウザーに記憶。 - setTheme
('light' | 'dark' | 'auto')。
吹き出し、カード、ツアー
- showTeaser
({ text, quickReplies?, replyRoles?, avatar?, ttlMs?, ruleId? })→boolean。小さな吹き出しを表示します。quickRepliesは最大3、ttlMsは0~120000(既定15000)。ウィンドウが開いている、ボタンが非表示、通知しない、会話進行中、頻度制限の場合は表示しません(false)。 - show
(text | object)→boolean。短縮形:ReactiveChat('show', 'Questions about shipping?')。 - hideTeaser/hide
()– 吹き出しを隠します。 - promo
(false | true | object)– このページのカードを非表示、再表示、または独自フィールドで上書きします(titel、text、bild、knopf、ziel、link_text、link_ziel、farbe、orte、zielgruppe)。 - tour
(id: string)→boolean。アカウントのツアーを開始。不明IDはfalse。カスタマイズで作成します。 - tourStop
()– 実行中のツアーを終了。
A/Bテスト
- abVariant
()→{ test, variant, qa }またはnull。訪問者のバリアント。 - abGoal
()– 実行中テストの目標達成を、購入完了ページなどから通知。
ReactiveChat('on', 'ready', function () { ReactiveChat('abGoal'); });
実行時のデザイン
- setBrand
(marke: object)– 再構築せず色と形を上書き。nullで値を削除。 - brandCheck
()→ 測定コントラストの一覧{ paar, ist, soll }。 - brandTokens
()→ 解決済みのデザイン値。 - setStart
(startseite: object)– 実行時のホーム設定(プレビュー用)。
フィールドはカスタマイズにあります。
イベント
- on
(name, callback)/off(name, callback)– 購読と解除。イベントに一覧とデータがあります。
オブジェクト上のメソッド
読み込み後は、ReactiveChat.getSession()、ReactiveChat.isOpen()、ReactiveChat.getEndpoint()、ReactiveChat.startConversation()、ReactiveChat.continueConversation()も使えます。ReactiveChat.versionはコアのバージョンです。読み込み前には存在しないため、関数形式が安全です。
提供していないもの
destroy、reset、setUser、send、setConsent、trackPage、navigateはありません。同意はプラットフォームかdata-rc-consentで制御(プライバシー)、ページ変更は自動検出(SPA)、ログアウトは本人確認を参照してください。
次:イベント
最終更新: