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。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>連結到LineNotify</title> | |
<meta charset="big-5" /> | |
<script> | |
function oAuth2() { | |
var URL = 'https://notify-bot.line.me/oauth/authorize?'; | |
URL += 'response_type=code'; | |
URL += '&client_id=AkGjwZTlY8VUJ63CQVhkor'; | |
URL += '&redirect_uri=http://localhost:8080/index.php'; | |
URL += '&scope=notify'; | |
URL += '&state=abcde'; | |
window.location.href = URL; | |
} | |
</script> | |
</head> | |
<body> | |
<button onclick="oAuth2();">連結到LineNotify按鈕</button> | |
</body> | |
</html> |
執行以上 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
留言版