5つのチャネル
入口は5つ、会話は1つに 会話は1つに。
どのチャネルも同じ受信箱、同じAI、同じナレッジベースを共有します。ユーザーが実際にいる場所だけオンにすればOKです。
JavaScript2行だけ。React、WordPress、生のHTMLページ、どんなサイトでも動きます。
仕組み
1 設定 → チャネル → Web からサイト用の埋め込みコードをコピーします。
2 </body>の直前に貼り付けます。たった2行です。
3 更新すると、右下にチャットバブルが表示されます。
4 ユーザー情報を渡せば、AIが誰と話しているか把握できます(任意)。
✺
向いている用途: SaaSアプリ、ECサイト、マーケティングサイト——ユーザーがすでにいるページならどこでも。
HTML
<script>
window.LaneChat = { site_id: "sc_8a2f...1b" };
</script>
<script async src="https://cdn.lane.chat/js/widget.js"></script>
ユーザー情報つき(任意)
window.LaneChat = {
site_id: "sc_8a2f...1b",
user: { id: "u_123", name: "Alex", email: "[email protected] " },
locale: "ja"
};
Telegramの両面に対応——顧客向けボットと、すでに運用しているコミュニティ向けのグループミラー。
仕組み
1 @BotFatherでボットトークンを取得します。
2 設定 → チャネル → Telegram に貼り付けます。
3 ユーザーがボットにDMを送るか、グループに追加すればスレッドを受信箱にミラーします。
4 Lane.Chatのウェブアプリから返信すれば、ユーザーにはTelegram上で届きます。
✺
向いている用途: Telegramがすでにホームになっている暗号資産、ゲーム、クリエイターコミュニティ向け——チーム向けのグループミラーにも対応。
セットアップ
BotFather → /newbot
→ LaneChat_Demo_Bot
→ 7123456789:AAH...z8
トークンを貼り付ける場所
設定 → チャネル → Telegram
バックエンドから送信
POST /api/v1/telegram/send
{
"chat_id": 6012345678,
"text": "ご注文の商品が発送されました。"
}
iOS / Android SDK
プッシュ通知、オフラインキュー、アプリと同じ見た目を持つiOS/Androidネイティブ SDK。
仕組み
1 SPMまたはGradleでLaneChatKitを追加します。
2 起動時にアプリIDとユーザー情報を添えてconfigure()を呼び出します。
3 チャットをどこにでも表示——全画面、モーダル、埋め込み、どれでも。
4 APNs/FCMトークンを登録して、アプリを閉じていても返信をプッシュ通知できるようにします。
5 添付ファイル、音声メッセージ、既読をネイティブに送信します。
✺
向いている用途: 隠しWebビューじゃなく、本物のアプリ内ヘルプ体験を用意したいモバイルアプリに。
Swift
import LaneChatKit
LaneChat.configure(
appId: "app_1f9c...",
user: .init(id: "u_123", name: "Alex")
)
// 「ヘルプ」ボタンからこれを呼び出す
LaneChat.present(from: self)
Kotlin
LaneChat.configure(
context = applicationContext,
appId = "app_1f9c...",
user = User("u_123", "Alex")
)
LaneChat.present(activity)
まだ専用チャネルを用意していないもの向けの、シンプルなREST API。
仕組み
1 設定 → 開発者 でAPIキーを発行します。
2 SDK(Node、Python、Go)を導入するか、REST エンドポイントを直接叩きます。
3 メッセージを送信し、AIの返信をSSEでストリーミングします。
4 ツール呼び出し、引き継ぎ、トークン使用量をダッシュボードで記録します。
✺
向いている用途: バックオフィスのボット、音声エージェント、UIなしでプログラムからアクセスしたい場面全般に。
curl
curl https://api.lane.chat/v1/messages \
-H "Authorization: Bearer lc_live_..." \
-H "Content-Type: application/json" \
-d '{
"conversation_id": "cv_8a2f",
"role": "user",
"content": "注文はどこですか?",
"stream": true
}'
Node SDK
import LaneChat from 'lane-chat';
const lane = new LaneChat({ apiKey: process.env.LANE_KEY });
const reply = await lane.messages.create({
conversation_id: 'cv_8a2f',
content: 'What\'s my order status?'
});
何かが起きた瞬間にあなたのエンドポイントを叩きます。自前のシステムに流し込むのに最適です。
仕組み
1 設定 → 開発者 → Webhooks でエンドポイントURLを追加します。
2 イベント(message.created、conversation.closed、handoverなど)をJSONとしてPOSTします。
3 Webhookシークレットを使ってX-Lane-Signatureヘッダーを検証します。
4 10秒以内に2xxを返してください。返さない場合はバックオフしながらリトライします。
✺
向いている用途: 会話をCRM、分析基盤、社内Slackチャンネルに流し込む用途に。
私たちがPOSTする内容
POST https://your-app.com/webhooks/lane
X-Lane-Signature: t=1713340800,v1=3f7d...
{
"event": "message.created",
"conversation_id": "cv_8a2f",
"channel": "telegram",
"message": {
"role": "user",
"content": "すみません、決済が通りませんでした。",
"created_at": 1713340800
}
}
署名を検証する
import crypto from "node:crypto";
const sig = req.headers["x-lane-signature"];
const [, ts, v1] = sig.match(/t=(\d+),v1=(\w+)/);
const mac = crypto.createHmac("sha256", SECRET)
.update(`${ts}.${rawBody}`).digest("hex");
if (mac !== v1) return res.status(401).end();