2017年6月5日 星期一

LINE Notify

Line在現在已是大家常用的通訊軟體之一,2016/12/26 Line在台舉辦LINE Taiwan TechPulse大會中,介紹了在LINE平台上的5大開發套件,分別是OWA(Official Web App)、LINE Notify、LINE SMS、Customer Connect、Group App Platform,讓有興趣透過API來開發服務的朋友們可以方便使用。 
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:以下幾點要注意。 
  1. 圖片格式要求為PNG格式。
  2. 「服務網址」可先填與「CallbackURL」相同內容。
  3. CallbackURL」內容需要有一個可以連結的網址,在後續應用時建議使用可以24小時提供服務的web server來存放網頁,現在測試時可先以本機電腦位置(localhost)驗證。
  4. 「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。
view rawLink LineNotify hosted with ❤ by GitHub
Step 7. 開啟網頁index.php網頁,連結到LineNotify按鈕,連結到Line Notify網頁設定Line的同意與連動。

執行以上 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: 
  1. Token前面一定要加 "Bearer " 空格一定要在,不然無法 LINE Notify 發送訊息。
  2. 這裡的POST指定form-data或application/x-www-form-urlencoded。

到此各位應該都可以順利完成所有步驟了,有了這樣的基礎,後續透過程式傳送資訊就應該不成問題。

結論: 
  1. 最後取得用戶端 Token後,就可以對此Token發送文字、圖片等的訊息,中間可以不用再使用Code取Token的動作。
  2.  LINE Notify 登錄服務頁面的URL,後續都可以修改,但請記住如果要做為後續服務,就必須要有一個度定Web Server來運作,主因還是要取得其他用戶端的Token。
  3. 需要一個24小時能在線上執行網頁的Web Server。
  4. 有了以上的觀念後,就可以使用多種程式語言來做到 Line Notify ,如Excel VBA、VB .net、Python、Perl、C#、C++、R、Ruby、go等。
操作影片:

沒有留言:

張貼留言