前言
大家好,我是 LINE Taiwan 的 Tech Evangelist – NiJia Lin。
在尚未更新前時常會遇到問題就是網址後面會接上 liff.state=
抑或是會在原始 target url 上加上 斜線(/
) 這類相關的問題,開發者(包括我)都需要使用相關的 workaround 去解套,這邊提供之前我寫的 Twitch-Bot 的 Javascript workaround 來處理 liff.state
的問題:
1 2 3 4 5 6 7 8 9
| const query = req.query['liff.state'].split('?')[1].split('&'); const notifyPayload = { code: null, state: null }; query.forEach(el => { const queryObj = el.split('='); if (queryObj[0] in notifyPayload) notifyPayload[queryObj[0]] = queryObj[1]; }); const code = notifyPayload.code; const userId = notifyPayload.state;
|
這樣的解法可以解決我的問題但會讓開發有點綁手綁腳的,但隨著 LIFF v2.3 改版上線後出現了兩個模式提供選擇,分別是 Concatenate
與 Replace
兩個選項,如下圖所示:
在 v2.3 的更新中將之前所會遇到問題以及已有對應 workaround 的版本變成 Replace mode
,而新推出的 Concatenate mode
則已解決相關的議題。也許在使用上還是會有點困惑,以下就使用一些 Scenario 為各位介紹一下這兩個功能之間的差異以及解決了什麼問題 🙂。