Line API v2.1 產生 Channel Access Token

參考官方新聞連結 ,在 2021 年 6 月之後官方推薦使用 API 的方式生成 CAT(Channel Access Token),操作方式有夠複雜。如果想要一個沒有期限、只需要一個,可以放置 play 的 Long-lived channel access token,後台依然是可以選擇申請的(for Messaging API, Login API 從 v2 開始就已經使用 API 呼叫)。短期的話就會有個數和天數的限制。

先說幾個 short-lived channel access token 特點:

  1. 後台註冊註冊 key-pair 最多 2 個(後面會提到流程),所以公鑰私鑰你各位要保管好阿!
  2. 驗證部分,如果是透過 v2.1 產生的 token 需要用 v2.1 的 API 驗證。
  3. JWT (後面會提到流程),exp 最長是 30 分鐘,動態生成的意思;而 token_exp 最長是 30 天。
  4. token 最多生成 30 個,所以要定期更換。目前看來沒有 refresh 的 API,所以需要 revoke 後再 issue
  5. 注意 v2.1 和 v2 issue token 差別是如果 30 個滿了, v2 會替換舊的, v2.1 會阻止你發。

大致上操作就是生成 key-pair 註冊公鑰得到 kid ,透過規定的 private key, header, payload 生成有效JWT (參考文章),最後透過 API 呼叫(參考)產生 token,如下圖:

ref: https://developers.line.biz/en/docs/messaging-api/generate-json-web-token/#issue_a_channel_access_token_v2_1
來源:https://developers.line.biz/en/docs/messaging-api/generate-json-web-token/#issue_a_channel_access_token_v2_1

完整流程如下:

來源:https://developers.line.biz/en/docs/messaging-api/generate-json-web-token/#issue_a_channel_access_token_v2_1

 

未來 v2 會逐步淘汰,如果以 v2.1 處理的話,如果 SDK 有做好那就最棒了,沒的話建議搞一個套件來用會比較保險。而 token 的部分可能要做一個 cron job 來定時更新,保持單一 token 可用會比較好。有遇到再說嘍。

這裡有技術說明參考,其中還有包括 retry 的機制說明:

LINE Bot 開發者指南詳解 – 3 發送 API 請求時的注意事項
前言:各位好, 我是 LINE Taiwan 資深開發技術推廣工程師 – Evan Lin。 今天這篇文章為各位詳細解釋 「 LINE Bot …


已發佈

分類:

作者: