- RaspBerry Pi 3 Mode B+
- 作業系統:版本代號為 Buster (Version:June 2019 / Release date:2019-06-20 / Kernel version:4.19)
Line Notify ( https://notify-bot.line.me/zh_TW/ )
- 透過LINE接收其他網站服務通知,與網站服務連動完成後,LINE所提供的官方帳號「LINE Notify」將會傳送通知。不僅可與多個服務連動,也可透過LINE群組接收通知。
- 現有可用的可連動服務
- GitHub: https://notify-bot.line.me/github/repos/select
- IFTTT: https://ifttt.com/line
- Mackerel: https://mackerel.io/
- 當然也可以根據自己的需求,自行開發自己的服務需求
- 取得通知服務的Token(發行存取權杖),必須先用註冊的電子郵件帳號 / 密碼,登入以下網址:
https://notify-bot.line.me/my/
- 點擊『發行權杖』
輸入權杖名稱
選取通知對象,可以是自己(1對1聊天接收LINE Notify的通知)或已參加的群組
- 取得已發行的權杖
若離開此頁面,將不會再顯示新發行的權杖。 離開頁面前,請先複製權杖。
- 邀請好友中的『LINE Notify』加入所選取的通知群組(這個範例的群組是:★LuckyFullHouse★幸運滿屋★)。
- 在樹莓派使用 cURL指令,傳送通知給Line Notify對應的通知對象
- 甚麼是 cURL ?
Curl 是一個在 Linux 上用來透過 HTTP Protocol 定義存取網路資源的協定,讓我們可以使用 client / server 模式來取得網路資源)下載和上傳檔案的指令(比起 wget 只能下載強大許多)。 - curl的選用參數
-X/--request [GET|POST|PUT|DELETE|PATCH] 使用指定的 http method 來發出 http request
-H/--header 設定 request 裡所攜帶的 header
-i/--include 在 output 顯示 response 的 header
-d/--data 攜帶 HTTP POST Data
-v/--verbose 輸出更多的訊息方便 debug
-u/--user 攜帶使用者帳號、密碼
-b/--cookie 攜帶 cookie(可以是參數或是檔案位置) - 使用 curl 傳送通知給Line Notify對應通知對象的指令格式:
- 文字訊息內容:
curl -i -X POST -H 'Authorization: Bearer <權杖碼>' -d 'message=<文字訊息內容>' https://notify-api.line.me/api/notify - 包含圖片的通知內容:
curl -i -X POST -H 'Authorization: Bearer <權杖碼>' -d 'message=<文字訊息>' https://notify-api.line.me/api/notify -d 'stickerPackageId=1' -d ' stickerId=407' - stickerPackageId 及 stickerId 的代號,可以參閱:
https://devdocs.line.me/files/sticker_list.pdf - 如果沒得可以執行 curl 的主機,可以用online curl
https://onlinecurl.com/ - LINE Notify的參考文件: https://notify-bot.line.me/doc/en/
使用Python搭配 curl 發送 Line Notify :
- 參考程式碼:
import os
zToken='***TheTokenCode***'
zMsg='2882國泰金目前股價=41.3'
zCmd="curl -i -X POST -H "
zCmd=zCmd+"'Authorization: Bearer " + zToken + "' "
zCmd=zCmd+"-d 'message=" + zMsg + "' "
zCmd=zCmd+"https://notify-api.line.me/api/notify"
os.system(zCmd)
- 執行結果:
HTTP/1.1 200
Server: nginx
Date: Wed, 17 Jul 2019 09:08:31 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=3
X-RateLimit-Limit: 1000
X-RateLimit-ImageLimit: 50
X-RateLimit-Remaining: 998
X-RateLimit-ImageRemaining: 50
X-RateLimit-Reset: 1563357895
{"status":200,"message":"ok"} - 發送的通知內容:
參考資料:
沒有留言:
張貼留言