LINE Notify是一項很新的服務,在2016/09/30發布,所以無法在網路上找到比較多的應用,筆者這2天有幸與一位三商電腦技術主任一起研究LINE Notify及其相關內容,這讓筆者有了許多點子可以想,以下筆者將先介紹LINE Notify環境設定,後續再將LINE Notify相關應用分享,也歡迎對LINE Notify有興趣的朋友一起討論與集思廣益。
LINE Notify是一個單向傳輸文字、訊息、圖片的API,無法作雙向溝通,所以只要拿來做為訊息的傳送就可以,重點它是免費的,如果用Line Bot做雙向溝通就要收錢了,LINE Notify算是經濟實惠的API服務。
方法:開發人員在 LINE Notify 官網申請一個client_id,透過client_id找出用戶端的Token,最後藉由該Token傳送文字、訊息、圖片給用戶端。
上述方法看似簡單,但實際操作起來要花上一些時間設定,以下就一一說明操作方法。
Step 1. 到 LINE Notify官網 登錄服務,申請取得Client ID。
Step 2. 填寫申請資料並登錄。
PS:以下幾點要注意。
- 圖片格式要求為PNG格式。
- 「服務網址」可先填與「CallbackURL」相同內容。
- 「CallbackURL」內容需要有一個可以連結的網址,在後續應用時建議使用可以24小時提供服務的web server來存放網頁,現在測試時可先以本機電腦位置(localhost)驗證。
- 「CallbackURL」主要是當與用戶端建立連動關係後,Line主機會回傳一組Code的植在URL上,這組Code就類似用戶識別碼,再透過這組Code去Line主機取回對應的Token,該Token就是要能取得對用戶端發訊權限,透過這組 Token 這樣才能對用戶端發送訊息。
Step 3. 發送認證郵件致電子信箱。
PS:認證郵件由常常會被誤以為垃圾信件,請注意。
Step 4. 點選認證信件中網址啟動服務。
Step 5. 點選認證網址後回到 LINE Notify 登錄服務頁面。
這時就可以見到申請好的Client ID,基本上一個人可以申請多個Client ID,再點選圖片進到裡面查看個人詳細內容。
Step 6. Client ID是要用來取得用戶端Token,將Client ID與註冊用到「CallbackURL」一起帶入以下HTML程式碼,並存成 index.php。
執行以上 index.php 程式碼需要php的環境,若是為了要執行以上程式碼要大家安裝去Apache 與php,將是一件大工程,筆者這裡推薦一個簡易版的伺服器系統:Usbwebserver,大家可以去官網下載無須安裝、操作簡易、容易擴充、方便使用、檔案大小約82 MB一個隨身碟即可帶著走,使用教學。
Step 8. 選擇用戶端,並點選同意與連動按鈕。
觀察Line,此時會出現 LINE Notify 帳號作為通知,如果有成功到這一步地顯示,表示已成功串起 LINE Notify 服務。
PS:如果用戶端沒有加入 LINE Notify 帳號,將不會收到任何通知訊息。
Step 9. 在點選同意與連動按鈕後,網頁會回到「CallbackURL」的頁面,這時取出URL上的Code,藉由這個Code來取出用戶端的Token。
Step 10. 使用Postman傳送參數到 https://notify-bot.line.me/oauth/token 取回Token。
填入以下參數
URL:https://notify-bot.line.me/oauth/token
Key:grant_type、Value:authorization_code
Key:code、Value:Step 9.的Code
Key:redirect_uri、Value:Step 2.的redirect_uri
Key:client_id、Value:Step 5.的client_id
Key:client_secret、Value:Step 5.的client_secret
PS:這裡的POST要指定application/x-www-form-urlencoded。
Step 11. 使用Postman,在Headers中Header:Authorization、Value:Step 10.的Token、傳送訊息message帶入傳送的訊息,將這些內容傳送到 https://notify-api.line.me/api/notify 給LINE Notify 發送訊息。
form-data模式
application/x-www-form-urlencoded模式
PS:
- Token前面一定要加 "Bearer " 空格一定要在,不然無法 LINE Notify 發送訊息。
- 這裡的POST指定form-data或application/x-www-form-urlencoded。
到此各位應該都可以順利完成所有步驟了,有了這樣的基礎,後續透過程式傳送資訊就應該不成問題。
結論:
- 最後取得用戶端 Token後,就可以對此Token發送文字、圖片等的訊息,中間可以不用再使用Code取Token的動作。
- LINE Notify 登錄服務頁面的URL,後續都可以修改,但請記住如果要做為後續服務,就必須要有一個度定Web Server來運作,主因還是要取得其他用戶端的Token。
- 需要一個24小時能在線上執行網頁的Web Server。
- 有了以上的觀念後,就可以使用多種程式語言來做到 Line Notify ,如Excel VBA、VB .net、Python、Perl、C#、C++、R、Ruby、go等。
參考資料:
- 關於LineBot(6) - 不用申請Bot也能發訊息的Line Notify
- 網路爬蟲系列 (Crawler)(4):Get與Post觀念介紹
- LINE Notify API Document
- S4 line business platform