イベント
hosted-experience-events
クライアントアプリケーションをさらに細かく制御したり、デジタルヒューマンの状態とウェブサイトを同期させたりしたい場合があります。そのために、デジタルヒューマンアプリケーションからのメッセージイベントを提供しており、これをウェブクライアントで利用することができます。そのためには、windowイベントUneeqMessageをリッスンします。
例
以下のコード例では、セッションがライブになるとbody要素のクラスリストを更新するために、どのようにメッセージをリッスンできるかを示しています。リッスンすることができるその他のメッセージイベントについては、以下に記載されています。
window.addEventListener( 'UneeqMessage', (event) => {
const msg = event.detail;
console.log('UneeQ Message: ', msg);
switch( msg.uneeqMessageType ){
case 'SessionStateUpdate':
if( msg.live ) {
document.body.classList.add('uneeq-session-live');
} else {
document.body.classList.remove('uneeq-session-live');
}
break;
// Add additional event handlers here...
default:
break;
}
});Messages
以下に、リッスン可能なメッセージの完全なリストを定義しています:
AvatarAnswerContent
NLPシステムからレンダリングされるコンテンツが提供されました
AvatarStartedSpeaking
デジタルヒューマンが発話を開始しました
AvatarStoppedSpeaking
デジタルヒューマンの発話が終了しました
AvatarUnavailable
利用可能なデジタルヒューマンがありません
CallToActionDismissed
ユーザーによってコールトゥアクションボックスが閉じられました
DisplayContentUpdated
コンテンツ表示エリアでコンテンツが更新されました
CustomData
NLPシステムから「instructions」フィールドで提供されたJSONデータ。このデータは、NLPシステムからフロントエンドアプリケーションにカスタム指示を渡すために使用できます。 例えば、ウェブサイトに表示したい製品のカスタムデータを設定するなどです。
CustomMetadataUpdated
チャットメタデータが正常に更新されました。メッセージには新しく設定されたメタデータの値が含まれています
DeviceError
デジタルヒューマンのビデオでエラーが発生しました。詳細はメッセージの内容を参照してください
DigitalHumanMuted
デジタルヒューマンの音声出力がミュート状態になりました
DigitalHumanPlayedInMutedModeSuccess
ブラウザの自動再生ポリシーにより、デジタルヒューマンの音声を再生できませんでした。デジタルヒューマンは音声がミュートされた状態で起動しました。ユーザーのインタラクション後にuneeqUnmuteDigitalHuman()を呼び出すとミュートが解除される場合があります
DigitalHumanUnmuted
デジタルヒューマンの音声出力ミュートが解除されました
EnableMicrophoneUpdated
マイクの有効状態が更新されました。enabled値がtrueの場合はマイクが有効、falseの場合はマイクが解放されています
FrameReady
アプリケーションがロードされ、設定が検証されました。セッションはuneeqInstance.startSession()を呼び出すことで開始できます
Instructions
指示ペイロードがNLPから送信されました。指示はNLP内でJSONとして設定されている場合があります
MicPermissionDenied
ユーザーがページにマイクの使用許可を与えていませんが、音声入力をプロンプトとして使用しようとしています
Notification
通知がありました
PromptRequest
会話プラットフォームに送信される、ユーザーの入力(テキスト/音声)および関連メタデータです。各リクエストには追跡用の一意な UUID(requestId)が含まれます。
⚠️ セキュリティに関する重要な注意:
書き起こしテキスト(transcript)はXSSに対してサニタイズされていません。このデータをHTMLに直接挿入すると、XSS(クロスサイトスクリプティング)攻撃を受ける可能性があります。
安全な実装例:
javascript
コピー
ダウンロード
// ❌ 危険:直接HTMLに挿入しない
element.innerHTML = promptResult.transcript;
// ✅ 安全:テキストとして挿入
element.textContent = promptResult.transcript;
// ✅ 安全:エスケープ処理を行ってから挿入
element.innerHTML = escapeHtml(promptResult.transcript);PromptResult
会話プラットフォームからの応答です。初期要求/userInputと応答メタデータが含まれています
SessionBackendError
セッションに関するバックエンド側でのエラーが発生したことを通知します
SessionConnecting
セッションの接続を開始しています。デジタルヒューマンとの通信を確立するための初期接続プロセスが進行中です。
RecordingStarted
音声認識のための録音が開始されました
RecordingStopped
音声認識のための録音が終了しました
ServiceUnavailable
問題が発生しました。詳細については含まれているメッセージを参照してください
SessionDisconnected
セッションが再接続できなかった場合、SessionDisconnectedメッセージとともにセッションが終了します。
SessionEnded
セッションが正常に終了しました
SessionError
セッション中に発生したエラーを含むメッセージです(例:TTS呼び出しの失敗、ネットワーク中断など)
SessionLive
セッションがライブ状態になり、アバタービデオがアクティブになりました
SessionReconnecting
ユーザーとバックエンド間で切断が発生し、セッションの再接続を試みています
SessionReconnectingFinished
セッションの再接続が完了しました
SessionStateUpdate
セッションの状態が更新されました
SpeechEvent
ウェブページにトリガーを組み込んで、デジタルヒューマンに話すコマンドを送信できます。詳細はスピーチイベントを参照してください
SpeechTranscription
ユーザーの音声の暫定的または最終的な書き起こしが受信されました
UserStartedSpeaking
ユーザーの音声入力アクティビティの開始が検出されました
UserStoppedSpeaking
ユーザーの音声入力アクティビティが停止または一定間隔で一時停止しました
VadInterruptionAllowed
デジタルヒューマンの発話中に割込みがありました
WaitingInQueue
ユーザーが待機列にいることを示します。ユーザーがデジタルヒューマンと対話できるようになるまでの待機状態を管理し、進行状況をカウントダウンします
WebRtcStats
WebRTC 接続やメディアストリームに関する統計情報(接続品質やパフォーマンス指標)を提供します
最終更新日 April 14, 2025