Line Notify - 使用者綁定

如何讓使用者訂閱你的Notify服務

若是在測試環境開發,Line呼叫callback url時可能會無法連到你的測試網站,這時候可以借助ngrok來讓你的測試網站可以被外部存取。

用HttpGet呼叫使用者綁定API

https://notify-bot.line.me/oauth/authorize

參數:

  • response_type: 固定給"code"。
  • client_id: 填入你在申請Notify服務時拿到的Client ID。
  • redirect_uri: 填入你要接收Line回傳code跟state的url,必須要與申請服務時填的Callback URL相同。
  • scope: 固定給"notify"。
  • state: 用來防止CRSF攻擊用的token,帶入的值會在callback時回傳給你。
  • response_mode: 若不加這項的話,在完成綁定時Line會redirect到前面填的redirect_uri,code與state會串在url中作為參數,官方不建議用這方式。填入"form_post"時,Line會改用HttpPost呼叫前面填的redirect_uri。

完整的網址會長這樣

https://notify-bot.line.me/oauth/authorize?response_type=code&scope=notify&response_mode=form_post&client_id=(你的Client ID)&redirect_uri=(你的Callback URL)&state=(你的系統產生的token)

使用者點擊網址後會被導到Line登入畫面,之後可以選擇要用哪個聊天室接收通知。

同意後綁定的聊天室就會收到綁定成功的通知


前面提到response_mode的部分,若不加這個參數使用redirect的話,收到的request會長這樣

若使用form_post的話request是長這樣

之後code要用來取得access_token後,傳送通知給使用者。另外要注意的是code是一次性的,用過就不能再用。

參考資料: