Web チャット開発の概要
JavaScript コードに慣れている場合は、Web チャット API を使用して、Web チャットをカスタマイズおよび拡張することができます。 WebView を使用して、モバイル・アプリケーションに Web チャットを組み込むこともできます。
Web チャット API に関する詳細な参照情報については、Web チャットの 開発者向け資料を参照してください。
Web チャット・ウィジェットをモバイル・アプリケーションの Web サイトまたは WebView に追加するには、生成されたスクリプト・エレメントを HTML ソースに埋め込むだけで済みます (埋め込みスクリプトについて詳しくは、 ページへの Web チャットの埋め込み を参照してください)。 この組み込みスクリプト内では、Web チャット API を使用して Web チャットをカスタマイズまたは拡張できます。
Web チャット API は、以下のいくつかのコンポーネントで構成されています。
- 構成オブジェクト: 組み込みスクリプトによって構成オブジェクト
watsonAssistantChatOptions
が定義されます。これは、Web チャット・ウィジェットに対して構成オブジェクトを指定します。 構成オブジェクトを編集することで、レンダリング前の Web チャットの外観と動作をカスタマイズできます。 使用可能な構成オプションについて詳しくは、Web API リファレンスの 構成オプション・オブジェクト を参照してください。 - インスタンス・メソッド: Web チャット・インスタンス・メソッドは、Web チャット・ウィジェットの低レベル制御を提供します。 インスタンス・メソッドを使用すれば、カスタム動作 (例えば、Web チャット・ウィジェットが開く仕組みを変更する、コンテンツを表示したり非表示にしたりする、ID 情報を設定する) を実装できます。 使用可能なインスタンス・メソッドについて詳しくは、Web チャット API リファレンスの メソッドとプロパティーのリスト を参照してください。
- イベント: Web チャット・イベント・システムでは、ご使用の Web サイトが Web チャット・イベント (Web チャット・ウィンドウの開閉や、メッセージの送受信など) に応答できるようになります。 イベントをサブスクライブすれば、カスタム動作を実装したり、メッセージ・コンテンツをインターセプトして変更したりできます。 イベント・システムについて詳しくは、Web チャット API リファレンスの イベント を参照してください。
Web チャット API を使用して Web チャット実装をカスタマイズする場合は、最初から開始する必要はありません。 一般的な Web チャットのカスタマイズの例を示すチュートリアルが用意されています。 詳しくは、 Web チャット開発チュートリアル を参照してください。
開発タスク
Web チャット API を使用して、以下の方法で Web チャットをカスタマイズおよび拡張できます。
- Web チャットのスタイルとコンテンツ
- Web チャット・ウィンドウのオープン、クローズ、およびレンダリング
- 会話のカスタマイズ
- データの管理
- セキュリティーと管理
Web チャット統合のその他の例については、 ここ を参照してください。
Web チャットのスタイルとコンテンツ
- Web チャットの外観のカスタマイズ
-
Web チャット設定の 「スタイル」 タブで使用可能なオプションを超えて Web チャットのスタイルと外観をカスタマイズする場合は、別の Carbon Design テーマを選択することによってカスタマイズできます。
サポートされるテーマは、 IBM Carbon Designによって定義されたカラー・テーマです。 Carbon テーマを設定するには、
carbonTheme
構成オプションを使用します。テーマ内の個々の変数を設定して、特定の UI エレメントをカスタマイズすることもできます。 例えば、チャット・ウィンドウに表示されるテキストは、フォント
IBMPlexSans, Arial, Helvetica, sans-serif
を使用します。 別のフォントを使用する場合は、updateCSSVariables()
インスタンス・メソッドを使用して指定できます。 - ホーム画面のカスタマイズ
-
ホーム画面には顧客に挨拶が表示され、オプションで、提案された会話スターターのリストが表示されます。 ホーム画面のスタイルとコンテンツをカスタマイズできます。
-
ホーム画面に要素を追加するには、
writeableElements.homeScreenAfterStartersElement
テーマ変数を使用してカスタム HTML を定義できます。instance.writeableElements.homeScreenAfterStartersElement.innerHTML = '<div class="MyCustomClass">This is my custom element</div>';
例: カスタム・エレメントをホーム画面に追加する方法を示す作業例については、 watsonx Assistant Web チャットのホーム画面のカスタム・エレメントを参照してください。
-
ホーム画面のスタイルを変更するには、 CSS ヘルパー・クラスを使用します。
-
- ストリングのカスタマイズ
-
Web チャットによって表示されるさまざまなラベルおよびハードコーディングされた語句を定義するストリングをカスタマイズできます。 ストリングをカスタマイズするには、
updateLanguagePack()
インスタンス方式を使用して、現行言語パック内のストリングを置き換えます。 詳しくは、 言語を参照してください。 - グローバル・オーディエンスのサポート
-
デフォルトでは、Web チャットによって表示されるストリングは英語です。 別の言語に変更するには、
updateLanguagePack()
インスタンス・メソッドを使用して、現在の言語パックを、使用可能な翻訳済み言語パックの 1 つに置き換えます。 詳しくは、 Web チャットでのグローバル・オーディエンスのサポート を参照してください。
Web チャット・ウィンドウのオープン、クローズ、およびレンダリング
- デフォルト・ランチャーの置換
-
Web サイトとの統合を向上させるために、組み込みのランチャー・アイコンを、Web チャットを開くための別のメカニズムに置き換えることができます。 デフォルトのランチャーを非表示にするには、
showLauncher
構成オプションをfalse
に設定します。 その他の対話に基づいて Web チャットを開くには、openWindow
インスタンス・メソッドを使用します。チュートリアル: カスタム・ランチャーの実装方法を示すチュートリアルについては、 カスタム・ランチャーの使用を参照してください。
- Web チャットを常に開いたままにする
-
Web チャットを常にページ上で開いたままにする場合は、
openChatByDefault
構成を使用して、チャット・ウィンドウを開いた状態でページをレンダリングし、hideCloseButton
オプションを使用して、顧客がページを閉じないようにします。 - Web チャットのサイズまたは位置の変更
-
Web サイトの設計によっては、Web チャット・ウィンドウが Web サイト上でレンダリングされる場所と方法を変更する必要がある場合があります。 例えば、ページ上の別の位置に表示したり、サイズを変更したり、ページ上の別のエレメント内にネストしたりすることができます。
Web チャット・ウィンドウのサイズを変更するには、 updateCSSVariables() インスタンス・メソッドを使用して CSS スタイルを変更します。
Web チャット・ウィンドウの位置を変更する必要がある場合、または CSS で許可されている制限を超えてサイズを変更する必要がある場合は、カスタム DOM エレメントを使用して Web チャット・ウィンドウを含めることができます。 これを行うには、
element
構成オプションを使用します。チュートリアル: カスタム要素で Web チャットをレンダリングする方法を示すチュートリアルについては、 チュートリアル: Web チャットのサイズと位置のカスタマイズ を参照してください。
- モバイル・アプリケーションへの Web チャットの追加
-
WebView を JavaScript ブリッジと共に使用して、モバイル・アプリケーションに Web チャットを追加できます。 詳しくは、「 モバイル・アプリケーションへの Web チャットの追加」を参照してください。
会話のカスタマイズ
- メッセージのインターセプトおよび変更
-
イベントをサブスクライブすることで、コードは、顧客とアシスタントの間で送受信されるメッセージをインターセプトし、内容を変更することもできます。
顧客のメッセージがアシスタントに送信される前にそのメッセージをインターセプトする場合は、
pre:receive
イベントにサブスクライブします。 例えば、メッセージ・テキストから個人情報を削除したり、メッセージ・ペイロードにコンテキスト変数を追加したりすることができます。アシスタントからの着信応答が顧客に表示される前にインターセプトする場合は、
pre:send
イベントにサブスクライブします。 例えば、Web チャットに固有のフォーマット設定、リンク、またはその他の要素を追加することができます。チュートリアル:
pre:receive
イベントを使用して着信メッセージをインターセプトおよび変更する方法を示すチュートリアルについては、 チュートリアル: Web チャットでのカスタム・オプション・ボタンの実装 を参照してください。 - カスタム応答タイプのレンダリング
-
アシスタントがカスタム (
user_defined
) 応答タイプを使用して特殊な応答を送信する場合は、これらの応答を Web チャット・ウィンドウに表示するカスタム・ビューを実装できます。 これを行うには、user_defined
応答を受信するたびに発行されるcustomResponse
イベントにサブスクライブします。 その後、イベント・ハンドラー・メソッドで、応答の内容を読み取り、独自のエレメントを使用して出力をレンダリングすることができます。チュートリアル: デフォルト・オプション応答の代わりにカスタム応答タイプをレンダリングする方法を示すチュートリアルについては、 チュートリアル: Web チャットでのカスタム・オプション・ボタンの実装 を参照してください。
- コンタクト・センター統合の実装
-
いずれかの Web チャット・スターター・キットを使用して、組み込み watsonx Assistant 統合として使用可能なもの以外のコンタクト・センター (サービス・デスク) プラットフォームと統合することができます。 完全に機能する参照実装は、いくつかのコンタクト・センター・プラットフォームで使用できます。さらに、スターター・キットを使用して、選択したプラットフォームとのカスタム統合を開発できます。
詳しくは、 コンタクト・センター・サポートの追加 を参照してください。
データの管理
- ユーザー ID 情報の管理
-
Web チャットは、アシスタントに送信する各メッセージにユーザー ID を関連付けます。このユーザー ID は、ユーザー・ベースの請求およびその他の目的で使用されます。 Web チャットで各ユーザーの匿名 ID を生成できるようにすることも、ユーザー ID を自分で制御することもできます。
Web チャットのセキュリティーを有効にしたかどうかに応じて、
updateUserID
インスタンス・メソッドまたはupdateIdentityToken
メソッドのいずれかを使用して、ユーザー ID 情報を指定できます。ユーザー ID 情報の指定方法と使用方法について詳しくは、 Web チャットでのユーザー ID 情報の管理 を参照してください。
セキュリティーと管理
- Web チャットの保護
-
Web チャットを保護するには、JSON Web Token (JWT) を使用してユーザーを認証し、プライベート・データを暗号化します。 詳しくは、 Web チャットの保護 を参照してください。
- Web チャット・バージョンの制御
-
IBM Cloud によってホストされる Web チャット・コードは、改善および新機能によって定期的に更新されます。 デフォルトでは、組み込みスクリプトは自動的に最新バージョンの Web チャットを使用します。 Web サイトに影響を与える可能性がある予期しない変更を回避するために、Web サイトで使用する Web チャットのバージョンを制御することができます。これにより、新規バージョンのリリース時に予期しない変更を回避するために、実動にデプロイする前に各新規バージョンをテストすることができます。
Web チャットのバージョン管理について詳しくは、 Web チャットのバージョンの制御 を参照してください。