§ 00 · metaphor 一個比喻 — 「cc 給 bot」
想像你在公司寫 email 給某位主管,每次寫完按「寄出」 — 郵件系統不只把郵件寄給主管,還自動 cc 給秘書「主管收到了一封新郵件」。 秘書知道有新郵件、可以馬上處理、不用等主管轉發。
LINE webhook 就是這個 cc 機制。
- 你在 LINE 傳訊息給 OA。
- LINE 的伺服器把訊息「正常送到 OA」 + 「順手 cc 一份給 bot 的伺服器」。
- bot 看到 cc 立刻處理、回應。
這個 cc 是即時的、自動的、雙方都同意的(你加 bot 為好友 = 你授權它收 cc)。
§ 01 · when it fires 什麼時候會觸發 webhook
下列事件會讓 LINE 寄 webhook 給 bot:
- 訊息類事件—文字、貼圖、語音、圖片、影片、檔案、地點。
- 互動類事件—使用者按按鈕、選單、確認 / 取消。
- 關係變化—你加 bot 好友、移除好友、被踢出群組。
- 群組事件—bot 被邀進群、被移出群、有人加入 / 退出群組。
純 chat 內容(你打字 + 對方收到)不會觸發 webhook, 除非那個 chat 裡有 OA。沒有 bot 的 chat 是 LINE 內部的事,bot 不知道。
§ 02 · privacy 對你的隱私有什麼影響
這個機制有 2 個隱私意涵 — 對使用者重要:
1. bot 只看得到「跟它有關的 chat」
你加 site-translation 為好友、或邀它進工地韓組 — 它從那一刻起會收到那個 chat 的 webhook。 其他你的 chat(家人、朋友、其他工作群)bot 看不到。
所以「裝一支 bot」不等於「給它權限看你所有訊息」 — 它只看到它在的那個 chat 裡的訊息。
2. bot 看到訊息原文
webhook 的內容包含訊息本身(文字、語音的 URL 等)。這是必要的 — bot 要翻譯就要看到原文。 但這也是為什麼選 bot 要看它的隱私政策(hotline.tools 的在 /privacy):
- 它處理完之後有沒有刪除?
- 它有沒有把訊息拿去訓練模型?
- 它有沒有把訊息給第三方?
hotline.tools 的答案是:處理完即刪除暫存、不訓練模型、不給第三方(除了完成你要的事必要的服務商)。
§ 03 · speed 為什麼 bot 有時候慢一秒回 — webhook 的物理限制
bot 回應的速度有兩段時間:
- LINE → bot 伺服器(webhook delivery)— 通常 100–500 ms。
- bot 內部處理(翻譯、轉文字)— 視內容,從 200 ms(短文字翻譯)到 5 秒(長語音轉文字)。
- bot → LINE → 你的手機(reply API)— 通常 100–500 ms。
總計:短指令 0.5–1 秒、語音轉文字 5–10 秒、複雜處理 10–30 秒。 如果你覺得 bot「卡了」 — 多半是中間那一段(內容處理)在跑,不是 webhook 故障。
很慢時 bot 會自動傳「處理中…」訊息,避免你以為它死了。
§ 04 · what bot sees bot 收到的資料 — 不是訊息全文
每個 webhook 包含的欄位(簡化版):
- 使用者 ID(雜湊)—不是你的名字、頭像、生日 — 是 LINE 給每個使用者的不可逆識別碼。
- chat 類型—1:1、group、room。
- 訊息內容—文字 / 語音 URL / 圖片 URL 等。
- 時間戳—訊息傳送的精確時間。
- reply token—一次性 token,bot 用它回覆訊息。30 秒過期。
bot 沒有看到的:
- 你的真實姓名(除非你授權 displayName 存取)。
- 你的頭像。
- 你的好友列表。
- 你跟其他人的 chat。
- 你的付費資料(LINE Pay 餘額、信用卡)。
這個資料模型對使用者隱私是友善的 — bot 只能看到它在的 chat 裡的訊息, 看不到「你是誰」(除了 LINE 內部的 hash)。