iT邦幫忙

0

筆記 - 更簡單的使用 LINE Notify

最近幫客戶寫的功能上要用到 LINE Notify,先前主要都在玩 LINE BOT 就沒有特別去理解這一塊。當我去翻官方文件,覺得排版有點糟糕,都會看到忘記在看哪個API的說明。而網路上找的一些教學都顯得特別複雜,於是只好自己來做個筆記,希望能幫助到一樣也覺得文件太複雜的朋友們?。

補充一下 LINE Notify 的介紹與使用情境

他是一個官方的機器人,可接收來自各個已連動服務的訊息,簡單來說就像是只能收信的 E-Mail 信箱。
由於 LINE@ 升級 2.0 後,主動發訊息給使用者要收費(雖然有免費500則,但是還是不夠用),因此有些比較不重要的提醒功能(像是三餐提醒要吃飯了、或是客戶在你的網站下了訂單等等),就能丟給免錢的Notify來發。所以在自用的情境下是能省下蠻多訊息發送的費用的。


新增新的服務

先至 https://notify-bot.line.me/my/services/ 登錄新的服務,登錄完收取驗證信之後就能拿到 Client IDClient Secret


產生連動網址

官方沒提供生成工具,所以要自己做,主要就是要放上 ClientIDRedirectURI跟一個防止CSRF的亂碼

https://notify-bot.line.me/oauth/authorize?response_type=code&scope=notify&response_mode=form_post&client_id=<放上你的Client_id>&redirect_uri=<放上你的RedirectURI>&state=<放一個隨機產生的亂碼>

RedirectURI 在有人連動時會收到一個帶有 CODE 的 POST 請求

{
  code: WGXfcDRMcGnSaM5321377w
  state: 你剛剛放的 state
}

API 01 : 拿code換成token

如題,這裡需要用 ClientIDClientSecret 去換 token 回來。測試時可以用POSTMAN 去做。

POST https://notify-bot.line.me/oauth/token

BODY 放上

grant_type: authorization_code
code: 剛剛拿到的code
redirect_uri: 跟剛剛的也填一樣 (反正他好像也不會丟東西過去)
client_id: 你的 ClientID
client_secret: 你的 ClientSecret

成功的話會回傳

{
"status": 200,
"message": "access_token is issued",
"access_token": "9zxce60kmFxIx2I3xRAc9plnuWCRWLF2TxKHlUhkjBF"
}

API02: 發送訊息

到這步就差不多全部了,要拿 token 來發送訊息

POST https://notify-api.line.me/api/notify

HEADER

Authorization: Bearer 剛剛的token

BODY

message: 你要發送的訊息

接下來按下送出,就能夠收到啦 ????

本文同步發表於 https://medium.com/@r3850355/%E7%AD%86%E8%A8%98-line-notify-c9cead119dc1


尚未有邦友留言

立即登入留言