自訂 Payload
onBeforeSendMessage 讓你在訊息送出前自訂 payload,把當前頁面、
使用者狀態、feature flag 等 context metadata 一起送給 bot —
讓 bot 不只看到使用者打的文字,還能根據完整脈絡產生回應。
選擇 Context
選擇一個分類,會被注入到所有送出的訊息中。
透過 ref 發送
Payload 日誌
發送一則訊息即可看到被注入的 payload。
聊天機器人載入中…
程式範例
const [category, setCategory] = useState<Category | null>(null);
<Chatbot
onBeforeSendMessage={(params) => ({
...params,
payload: {
categoryId: category?.id,
categoryName: category?.name,
injectedAt: new Date().toISOString(),
},
})}
{...rest}
/>;
SendMessageParams
onBeforeSendMessage 接收並回傳的參數結構:
| 欄位 | 型別 | 說明 |
|---|---|---|
text | string | 使用者輸入的文字 |
payload | Record<string, unknown> | (() => Record<string, unknown>) | 附帶的 metadata,會一起送到 bot provider |
blobIds | string[] | 已上傳檔案的 blob ID 列表(可選) |
filePreviewUrls | string[] | 圖片預覽 URL(可選) |
documentNames | string[] | 文件名稱(可選) |
最常見的用途是注入 payload。其他欄位(例如 text 加前綴)也可以修改 — 回傳的物件會取代原始參數送出。
深入閱讀
payload 如何被 bot provider 接收與運用,見 Asgard 開發者文件: