SDKリファレンス
すべてのTelybot SDK(Android、iOS、React Native、Flutter、Ionic)は、同一のシンプルなコントラクトを実装しています。一つを使えば、すべて同じように利用できます。
API
| 通話 | 機能について |
|---|---|
init / initialize | Client IDを保存します。IDを検証し、形式が正しくない場合は明確にエラーを表示します。 |
show | アプリの上にチャットを表示します。メッセージ欄に入れる質問を任意で受け取ります(0.2.0)。 |
dismiss | 閉じます。 |
isShowing | 現在表示されているかどうか。 |
| 埋め込みチャット | ヘルプタブなど、自分の画面の中に置くチャット(0.2.0)。 |
onShow / onDismiss | チャットの開閉を通知します。AndroidとiOSで(0.2.0)。 |
setVisitor | サインイン済みのお客様の名前、電話番号、メールアドレスを、チャットのフォームに提示します(0.2.0)。 |
hasUnreadReply / onReply | お客様がまだ見ていないチームからの返信(0.2.0)。 |
質問を入れて開く。 showに質問を渡すと、チャットのメッセージ欄に入ります。お客様はそれを読んで送信をタップします。質問はリンクの#fragmentで運ばれるため、サーバーのログには一切残りません。1行で最大500文字です。
自分の画面の中のチャット。 AndroidのKeydaBotView、iOSのKeydaBot.makeChatViewControllerまたはSwiftUIのKeydaBotView、React Nativeの<KeydaBotChat />、FlutterのKeydaBotChat、そしてIonicパッケージのembedWidget()。閉じるボタンはなく、画面のナビゲーションが出口です。Androidでは、戻るボタンはまず開いている商品やカートを閉じます。チャットが最前面の画面である間はReact NativeとFlutterが自動で行い、ネイティブのKeydaBotViewでは戻る処理からそのgoBack()を呼び出します。
サインイン済みのお客様。 お客様の名前、電話番号、メールアドレスをSDKに渡すと、アプリがすでに知っている情報をチャットが入力します。情報は提示されるだけで、送信はされません。「担当者と話す」フォーム、注文、予約、名前・電話番号・メールアドレスを尋ねるウェルカムの質問に表示され、送信するのはお客様です。情報はリンクの#fragmentで運ばれ、アプリの申告であって検証済みの身元ではありません。チャットが拒否する値は除外されます。80文字を超える名前、8〜15桁でない電話番号、正しいドメインのないメールアドレスです。Ionicのフルスクリーンチャットはアドレスを履歴に残すシステムブラウザで開くため、これらを受け取りません。埋め込みウィジェットは受け取ります。
チャットが閉じている間の返信。 お客様が担当者を呼んでチャットを閉じた場合、ダッシュボードからの返信は会話の中で待機します。Android、iOS、React Native、FlutterのSDKは、アプリが前面に戻ったときにこれを確認してアプリに知らせるので、お客様がチャットを開くまでチャットボタンにドットを表示できます。確認するのは、お客様が過去14日以内に担当者を呼んだチャットだけです。バックグラウンドのヘルプタブなど、アプリが見えない場所で読み込んだままのチャットは既読とは数えません。お客様が見るまでドットは残ります。これはプッシュ通知ではありません。返信はアプリが開かれたときに検知されます。
これ以外は意図的にありません。メッセージ送信APIもユーザー識別の呼び出しもありません。どちらもまだ端から端まで動作しておらず、動かないメソッドは無いメソッドより悪いからです。
すべてのSDKが開くURL
{baseUrl}/chat/{clientId}baseUrl はデフォルトで https://telybot.com に設定されており、ステージング環境やセルフホスト環境など、すべてのプラットフォームで上書き可能です。
ウェブビューの必要性とコストについて
プラットフォームが提供する単一のチャットインターフェースを、あらゆる場所で読み込みます。
提供内容: ダッシュボードで行った変更(アクセントカラー、ウェルカムメッセージ、ボット名、公開設定など)は、リリース作業なしで即座にすべてのアプリに反映されます。修正は一度にすべて適用され、どのプラットフォームでも同一のチャットが利用可能です。
費用について: チャットには接続が必要です。オフラインモードはなく、プッシュ通知もまだ利用できません。
後で気づくよりも、公開前に知っておいていただきたいことがあります。
各SDKが提供する保証
- ナビゲーションの脱出。 外部へのリンクはチャットを置き換えるのではなく、システムブラウザで開きます。これがないと、フッターのリンクを一度タップしただけで会話が終了し、戻れなくなってしまいます。
- 会話の継続性。 DOMストレージが有効なため、アプリを閉じて戻ってきた顧客は、中断した箇所から会話を再開できます(24時間以内)。
- キーボードが入力欄を隠すことはありません。
- セーフエリアを考慮 — ノッチやホームインジケーターの下にチャットが表示されることはありません。
- アプリがクラッシュすることはありません。 読み込みに失敗した場合は、再試行が表示されます。
- 分析ツール、デバイス識別子、サードパーティの依存関係は一切ありません。 Telybot SDKを追加しても、アプリにトラッカーが組み込まれることはありません。
- 戻るボタンは、お客様が見ているものを先に閉じます。 Androidでは、開いている商品、カート、予約の上で戻るを押すとまずそれが閉じ、その後でチャットが閉じます(SDK 0.2.0以降)。
チャットの中で
これらはすべてホストされたページから届くため、SDKを更新しなくてもすべてのアプリに反映されます:
- 提案ボタン付きのウェルカムメッセージ。ボットに設定された言語で表示されます。
- 会話は端末に24時間保持され、チャットは訪問者IDを作りません。ウェブサイトでは、会話はブラウザのタブ1つ分だけ続きます。(Ionic SDKのフルスクリーンチャットでこれを使うには0.2.0が必要です。)
- 注文と予約(ビジネスが受け付けている場合):カート、予約の日時、注文や予約が長く待たされたときにビジネスへ電話するリンク、確定した予約の「カレンダーに追加」。
- 添付ファイル:写真(JPEG、PNG、WebP、GIF)と、PDF、DOCX、TXT、CSV、MDファイル。添付ボタンにはAndroidとFlutterのSDKで0.1.4以降、ドキュメントにはFlutterで0.2.0が必要です。
- 「カレンダーに追加」は
.icsファイルへのリンクです。 iOSでは、購読するカレンダーとしてカレンダーアプリで開きます。Androidでは、端末のカレンダーアプリが.icsファイルを取り込める場合はそれを提示し(現行のGoogleカレンダーは対応しています)、それ以外ではブラウザがファイルをダウンロードします。
Client IDの形式
kb_live_ followed by 8-48 hexadecimal charactersそれ以外のものは初期化時に拒否され、顧客の画面に404エラーが表示されることはありません。Client IDは設計上公開されるものであり(ウィジェットを埋め込んだウェブサイトで確認可能)、アカウントの読み取りや変更を行う権限はありません。詳細は 制限とセキュリティ を参照してください。
ソース
MITライセンスで公開中:github.com/telybotai/telybot-Sdks。各パッケージが準拠する共通の規約は、リポジトリトップのCONTRACT.mdに記載されています。