最近幫客戶寫的功能上要用到 LINE Notify,先前主要都在玩 LINE BOT 就沒有特別去理解這一塊。當我去翻官方文件,覺得排版有點糟糕,都會看到忘記在看哪個API的說明。而網路上找的一些教學都顯得特別複雜,於是只好自己來做個筆記,希望能幫助到一樣也覺得文件太複雜的朋友們?。
他是一個官方的機器人,可接收來自各個已連動服務的訊息,簡單來說就像是只能收信的 E-Mail 信箱。
由於 LINE@ 升級 2.0 後,主動發訊息給使用者要收費(雖然有免費500則,但是還是不夠用),因此有些比較不重要的提醒功能(像是三餐提醒要吃飯了、或是客戶在你的網站下了訂單等等),就能丟給免錢的Notify來發。所以在自用的情境下是能省下蠻多訊息發送的費用的。
先至 https://notify-bot.line.me/my/services/ 登錄新的服務,登錄完收取驗證信之後就能拿到 Client ID
跟 Client Secret
。
官方沒提供生成工具,所以要自己做,主要就是要放上 ClientID
、RedirectURI
、跟一個防止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
}
如題,這裡需要用 ClientID
跟 ClientSecret
去換 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"
}
到這步就差不多全部了,要拿 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