自從 LINE 將推播服務改成「用多少,收多少」之後,
雖然看起來貌似有免費次數,
但經過實測後發現,如果推播的目的地是一個群組,群組內若有 300 人,則對著群組推播一則訊息就同等於 300 次,
這完全就讓已經依賴 LINE 的使用者剩下兩條路可走:
1. 付費
2. 另謀他路
我自己本身也深受其害,後來發現了一個方式可以在某種程度上既可以達到差不多的目的,也可以免費使用,
那就是 LINE 的另外一個服務 — LINE NOTIFY
LINE NOTIFY 是一個廣播性質的服務,
他可以每分鐘免費對著一個 token 推播 1000 次,基本上是用不太完了,
每個人也不限制只能擁有一個 token,每當你對著一個服務訂閱一次,取得一個 token ,
便擁有每分鐘 1000 次的 quota。
(2024/05/07 更新:感謝讀者Elly提醒,從官方文件查到的限制是每小時1000次)
但既然說是廣播,顧名思義就是你無法針對特定目標進行推播的動作,
那要如何達到這個目的呢,下面我就針對其中的眉角進行解說。
在 NOTIFY API Documant 中有提到,
若要使用這個服務你得先呼叫 https: //notify-bot.line.me/oauth/authorize,
並將一系列參數包含 state 帶入後取得 code 與 state,
而這個 state 原本是為了避免 CSRF 攻擊,
但倘若將 userId 當作 state 帶入後,
回傳的再拿著 code 去換到 access_token 後,
把 state 與 token 一併回傳伺服器,
我們就可以把 userId (state) 與 token 綁在起了。
使用此方式的優點就是 免費,免費,免費
缺點就是,使用者必須先主動訂閱一次服務,才能將 token 與 userId 送到伺服器端做綁定。
衍生閱讀:於2025年3月31日結束LINE Notify結束服務後的因應之道: Web Push Notification:叡揚部落格
Web Push Notification
https://www.gss.com.tw/blog/web-push-notification