搜尋此網誌

2022年3月29日 星期二

Line Notify 初試

 緣起:


    最近需要研究 FB API 與 LINE API 的功能,FB 的 API 有些難搞,弄得我很挫折,所以今天就先轉換跑道,來試試 LINE 的 API,正確來說,應該是它的 Notify功能。



最基本的應用:


    我是跟著這篇教學文章做的。首先到 LINE Notify 的首頁,用你 LINE 的帳號做登入,登入時需要手機做雙重認證,登入成功後,來到 "頁面" 那邊。


    點選 Generate token


     然後輸入你這個應用的名稱,選擇你要傳送通知給哪個群組,也可以選擇發送給自已,打好之後按下 Generate token,它就會生成一個 token,要把那 token 給記錄下來,不然頁面關閉後,你就不能再拿到 token。

這邊我選擇送給自己

token 的樣子

    再來,你的 LINE 要記得加 LINE Notify 的帳號,這樣才能收到 LINE Notify 的訊息。


    最後,可以用 Linux 上用 curl 指令發送訊息,格式長這樣。

curl -H "Authorization: Bearer ${access_token}" -d "message=測試" https://notify-api.line.me/api/notify


    -H 是增加標頭,那個 ${access_token} 就輸入你拿到的 token,那個 ${} 不用輸入。-d 可以用來送出 POST 內容,這邊 message 代表我們要送的訊息,最後是網址的部份,固定就那樣。

    發送後如果成功,會收到 {"statue":200, "message":"ok"} 的 JSON 訊息,LINE 端也會收到通知。如果要傳送到群組裡的話,記得要把 LINE Notify 給拉進群組裡。




用 Python 傳送圖片:


    我看了看 LINE Notify 的 API 文件,發現除了 Message,他還能傳 ImageFile,哇,能自動傳圖片的話感覺超酷的,所以我就接著去找,如果用 Line Notify 傳圖片,這是找到的教學文章,用 python 的 requests 套件就能達成了。

    下面是 Python 的程式碼。

import requests

url = 'https://notify-api.line.me/api/notify'
token = '我的token'
headers = {
    'Authorization': 'Bearer ' + token
}

image = open('./S__64331794.jpg', 'rb')

data = {
    'message':'圖片上傳測試'
}

imageFile = {'imageFile' : image}

data = requests.post(url, headers=headers, data=data, files=imageFile) 
  

    然後這是我檔案的結構,S_64331794.jpg 是我要送的圖片。程式碼最主要的部份就是用 python 內建的 open,讀取二進位檔,然後把資料附加在 "imageFile" 這個 key 上,然後用 requests 的 post 將那些資料放在特定的欄位,發送出去。


    成功的話就能看到 LINE Notify 送來的訊息與圖片


    真的是超酷的,而且也很簡單,只要記下 token,然後用 http 的 post 就能送任何你要的訊息跟圖片。我接著想要用這個來做一個薯泥監視器。


沒有留言:

張貼留言