踩坑警示
AI Agent

OpenClaw 串 LINE 踩到的四個大坑

CH
Chi
發布於: 2 個月前
273
16
加載中...

留言區

排序
JO
大約 2 個月前
我最近也在幫客戶研究串 LINE 自動回覆,看完這篇整個怕了 光是 webhook 那塊就已經讓我頭痛,更別說後面還有這些坑... 行銷人想靠自己搞定 LINE 串接是在做夢嗎 😅 有沒有推薦給不太會寫 code 的人的方式?還是直接找工程師比較快
CH
Chi
回覆 JoyceCloud
大約 2 個月前
痾.. 接 line 的程序比較多一點, 不過照著步驟做還可以,真的不行就找工程師幫忙🤣
JO
JoyceCloud
回覆 Chi
大約 2 個月前
哈好吧,我去硬著頭皮照步驟試試,不行就乖乖找工程師 🫠 說實話我自己跟著做應該還行,但客戶想自己搞... 我直接先幫他們問工程師報價了 😂
RD
rdj
#2
大約 2 個月前
#33100 line專用的webhook,主要是不像其它是用socket,只要30分鐘沒有通信,就會自動重啟,有一個簡單的方案channels.channelHealthCheckMinutes=0,就不會一直重啟了
CH
Chi
回覆 rdj
大約 2 個月前
好耶 感謝補充!!
鯊魚
2 個月前
好奇問一下,webhook 那邊有驗 x-line-signature 嗎?LINE 有提供這個 header 讓你確認 request 真的是 LINE 送來的,但很多教學都沒提到,然後 message payload 本身又不加密,如果沒驗的話理論上任何人知道你的 webhook URL 都可以打進去
CH
Chi
回覆 鯊魚咬電線
2 個月前
不確定耶,還沒看到那麼底,高手好多呀 哈哈
鯊魚
鯊魚咬電線
回覆 Chi
2 個月前
沒關係哈,這個補起來不麻煩。LINE 官方 SDK 裡就有 validateSignature,加幾行 middleware 就搞定,不用重頭自己算 HMAC。知道有這東西之後上線前確認一下就好了。
RD
rdj
L3
回覆 鯊魚咬電線
(已編輯)大約 2 個月前
必驗(除了LINEConsole的verify例外)。 關鍵位置: 一、Express webhook middleware會讀 x-line-signature,用channelSecret 驗證,不通過回401 src/line/webhook.ts 二、Node webhook handler也一樣驗簽,不通過回401 src/line/webhook-node.ts 三、驗簽實作是HMAC-SHA256(body, channelSecret) + timingSafeEqual src/line/signature.ts 特例是: POST {"events":[]} 且沒有signature(LINE Developers Console 的 Verify)會放行200。 這個特例不會處理實際message事件。 所以你擔心「知道 URL 就可偽造一般訊息打進來」不會發生的啦
鯊魚
鯊魚咬電線
L4
回覆 rdj
大約 2 個月前
timingSafeEqual 有用就放心了,這個坑很多人跳過直接用 ==,timing attack 的風險很多人根本沒意識到。Console verify 那個 special case 設計算乾淨,只放行空 event、不處理實際訊息,沒有被濫用的空間。
阿哲
2 個月前
LINE 那個文件頁面我上次看就很頭大 reply token 只能用一次那個坑你有踩到嗎?我之前存起來之後想慢慢發結果整個失效...debug 到半夜才意識到根本問題不在 OpenClaw 端哈哈
小小
小小攻城屍
回覆 阿哲 (A-Zhe)
大約 2 個月前
這個坑我有踩到!!我以為存起來之後可以慢慢用,結果一直噴 invalid token 查了好久才搜到有人說 reply token 只能用一次而且有時效...LINE 文件完全沒有把這個寫在明顯的地方 QQ 害我以為是自己 code 寫錯
CH
Chi
回覆 阿哲 (A-Zhe)
2 個月前
沒有耶,哈哈 還有這種坑
阿哲
阿哲 (A-Zhe)
回覆 Chi
2 個月前
哈哈那你逃過一劫了 XD 我當時就是以為它是普通 token 存起來慢慢用,debug 到最後才看到文件角落寫「一次性使用後即失效」 LINE 文件真的要多看幾遍,很多東西藏在犄角旮旯
RD
rdj
L3
回覆 阿哲 (A-Zhe)
大約 2 個月前
200個push token不夠用,所以我另外寫了一個排程,要回答的問題都塞在排程json,等有人問問題,用一次性的reply token回
阿哲
阿哲 (A-Zhe)
L4
回覆 rdj
大約 2 個月前
哇這個設計蠻聰明的耶 基本上是把問答邏輯整個倒過來,不主動 push,等 event 進來再用 reply token 打 這樣就不用擔心額度問題了 你那個排程 json 的格式有沒有什麼眉角?
關聯 / 被收藏牆
被引用
尚未被引用或收藏
相關卡片
尚無相關卡片