Web SDK とは
Web SDK はウェブサイトに埋め込む小さなコードです。訪問者が「今すぐ話す」ボタンをクリックすると、ブラウザ内でマイクを使って OneInbox エージェントとのライブ音声会話が始まります。 ライブチャットウィジェットの音声版と考えてください。 SDK が処理するもの:- ブラウザへのマイク許可のリクエスト
- リアルタイムの音声ストリーミング(双方向)
- 会話中のライブトランスクリプト表示
- ミュート、ミュート解除、ハングアップ
- OneInbox のエージェント(応答する AI)
- 通話を開始するサイト上のボタンまたはウィジェット
クイックスタート — サイトへの最も簡単な追加方法
これが最速のパスです:公開可能なキー + Web SDK、バックエンド不要。エージェントを作成する
通話に応答するエージェントを構築します — まだ作成していない場合は クイックスタート を参照してください。その
id(agt_…)を保存します。公開可能なキーを作成する
OneInbox ダッシュボード で Settings → Publishable Keys → Create key へ。このキーに許可するオリジンを入力します — 1 行に 1 つ:
キーをコピーします —
| 入力内容 | 使うタイミング |
|---|---|
https://yoursite.com | キーを特定のドメインに制限 — 他のオリジンからのリクエストは 403 ORIGIN_NOT_ALLOWED で拒否される |
https://yoursite.com + https://staging.yoursite.com | 複数の特定ドメイン(本番 + ステージングなど) |
* または空白 | すべてのオリジンを許可 — 開発中やドメインロックが不要な内部ツールに便利 |
oi_pk_live_… で始まります。プロダクトへの組み込み方
訪問者が「通話する」をクリックすると:- ウェブサイトがサーバーに問い合わせます:「この訪問者の通話を開始して」
- サーバーが OneInbox API 経由で通話を作成し、短命のアクセストークンを受け取ります
- Web SDK がそのトークンを使って訪問者のブラウザをエージェントに接続します
- 会話が始まります — ライブ、双方向の音声
2 つのパッケージ
| パッケージ | 使うタイミング |
|---|---|
@oneinbox/web-sdk | プレーンな JavaScript または任意のフレームワーク |
@oneinbox/web-sdk-react | React アプリ — すぐに使えるフックを提供 |
インストール
Vanilla サンプル
リッスンできるイベント
| イベント | 意味 |
|---|---|
call-start | 通話が接続されました — アクティブな通話 UI を表示 |
call-end | 通話が終了しました — アイドル状態に戻る |
transcript | 新しい発話行が聞こえました — キャプションまたはチャットログを更新 |
speech-start / speech-end | 誰かが話し始めたまたは止めた — 発話インジケーターをアニメーション |
volume-level | 訪問者のマイクの現在の音量(0〜1)— マイクレベルバーを駆動 |
error | 何かが間違っています — エラーメッセージを表示 |
コントロール
| メソッド | 動作 |
|---|---|
oi.start(agentId, { variables }) | 通話を開始 |
oi.stop() | 通話を終了 |
oi.setMuted(true / false) | 訪問者のマイクをミュートまたはミュート解除 |
oi.isMuted() | マイクが現在ミュートされている場合 true を返す |
oi.status | 現在の状態:idle、connecting、active、または ending |
React サンプル
useOneInbox() は通話 UI の構築に必要なすべてを提供します:
| 値 | 内容 |
|---|---|
status | 現在の通話状態(idle、connecting、active、ending) |
transcripts | これまでの会話のすべての行 |
isAgentSpeaking | エージェントが話している間 true |
isMuted | 訪問者のマイクがミュートされている場合 true |
volume | リアルタイムのマイクレベル(0〜1) |
error | 最後のエラー(もしあれば) |
start / stop / setMuted | コントロール |