最近帮客户写的功能上要用到 LINE Notify,先前主要都在玩 LINE BOT 就没有特别去理解这一块。当我去翻官方文件,觉得排版有点糟糕,都会看到忘记在看哪个API的说明。而网路上找的一些教学都显得特别複杂,于是只好自己来做个笔记,希望能帮助到一样也觉得文件太複杂的朋友们?。
补充一下 LINE Notify 的介绍与使用情境
他是一个官方的机器人,可接收来自各个已连动服务的讯息,简单来说就像是只能收信的 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}
API 01 : 拿code换成token
如题,这里需要用 ClientID
跟 ClientSecret
去换 token
回来。测试时可以用POSTMAN 去做。
POST https://notify-bot.line.me/oauth/token
BODY 放上
grant_type: authorization_codecode: 刚刚拿到的coderedirect_uri: 跟刚刚的也填一样 (反正他好像也不会丢东西过去)client_id: 你的 ClientIDclient_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