開發Line APP的應用(一)
事前準備: 一組可登入LINE的帳號密碼, 一支已安裝LINE且登入LINE的智慧型手機, 一台可使用網頁瀏覽器的桌上型/筆記型電腦
程式語言: Python3.7, 請事先於電腦上配置好Python開發環境(需安裝requests套件), 此範例使用jupyter notebook示範執行程式碼
額外選項: Git, 本文所提到的原始程式碼或參考資料皆上傳至 https://bitbucket.org/BlockChen_PT/my-linedev/src/master/
1. 在自己的手機上,於LINE聯絡人名單建立一個測試用的對象:
1.1. 於桌上型/筆記型電腦打開LINE Notify的官網 https://notify-bot.line.me/zh_TW/ 並使用LINE的帳戶進行登入
(手機上的LINE會提醒此帳戶登入LINE Notify)
1.2. 於右上角登入資訊的地方打開下拉選單, 選取個人頁面
1.3. 在個人頁面點擊發行權杖(注意:手機版網頁上看不到此項目)
1.4. 替測試用的對象取個名字, 此範例使用my_notify, 接著選擇透過1對1聊天接收LINE Notify的通知, 然後按下發行
(手機上的LINE會提醒已發行個人存取權杖, 並自動建立一個名稱為LINE Notify的聊天室群組)
1.5. 請複製並妥善保存此權杖(LINE token), 此範例是5J8q3AcjlqPVsn6BHiKeCzE7WQiqcAkgdaGTdmlY8kP
(請勿使用範例的LINE token, 此token已被刪除)
(產品的LINE token請勿隨意交付他人, 應視為帳號密碼一類的資訊保密)
2. 寫程式將訊息推送至手機上的LINE Notify聊天群組:
2.1. 打開jupyter notebook, 運行下列程式碼 (記得更改token, msg與filepath的值)
(可以從這裡下載程式碼 https://bitbucket.org/BlockChen_PT/my-linedev/src/master/send_notify.py)
2.2. 檢查手機上的LINE聊天群組, LINE Notify聊天群組會收到程式送出的訊息/圖片
3. 現在, 讓我們看看這支程式做了什麼
3.1. 首先是網址https://notify-api.line.me/api/notify, LINE Notify是通過https POST request的方式推送訊息
3.2. 接著是https request的header, 要推送的聊天群組token放在"Authorization": "Bearer " + token的json格式字段 (注意以空格隔開Bearer與token字段), 這同時也是LINE的驗證機制
3.3. 然後來看https request的body(或稱payload), 要推送的訊息放在 'message': msg 的json格式字段
3.4. 如果你想加上LINE自帶的小圖示, 則必須在payload聲明stickerPackageId與stickerId的關鍵字並加上對應的值
(可以從這裡下載sticker的PackageID與stickerId文件 https://bitbucket.org/BlockChen_PT/my-linedev/src/master/sticker_list.pdf )
3.5. 如果你想推送的是圖片, 實際上使用的是https request上傳檔案的功能, 'imageFile': open(filepath, 'rb'), 然後傳遞給files參數(不是傳遞給params)
4. 現在, 相信你已經知道如何通過程式控制LINE Notify推送訊息:
你可以回到步驟1.4., 重新設定一個LINE Notify名稱, 加入親朋好友的聊天室群組來發行token,
然後將這支send_notfiy程式搭配對應的token與其它程式串接,
就可以實現如...半夜推送訊息與圖片, 溫馨提醒群組內的朋友起床尿尿(會被打死);
或是...當股市爬蟲發現某檔股票有好價錢的時候, 調用send_notify方法, 通知群組眾人搶購等功能;
[發揮創意的時刻到了!]
預告: 下一篇會介紹LINE LIFF, 它能實現取得LINE用戶資訊進行身分確認, 在LINE聊天室介面上提供按鈕/選單, 與用戶互動等功能