最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2016年12月30日 星期五

LINE Notify 入門到進階應用(1) --- 訊息傳送環境設定

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。
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等。
操作影片:

參考資料: