# 透過 Python 發 Line Notify ## 獲取權杖(Token) 到設定網址 https://notify-bot.line.me/zh_TW/ 進行登入 ![](https://i.imgur.com/brQqVWL.jpg) 登入後在右上角自己的名字下拉選單點選「個人頁面」 ![](https://i.imgur.com/EkECOma.jpg) 進行後往下拉,會看到如圖,按下「發行權杖」 ![](https://i.imgur.com/BjQ4f3l.jpg) 接著就是出現一堆你自己的群組讓你選,第一次請選「透過1對1聊天接受LINE Notify的通知」, 開發時用來進行測試,測完再開始發到各個群組去~ 記得輸入權杖名稱(傳送訊息時會顯示) ![](https://i.imgur.com/rVhmMiC.jpg) 填完後按下發行,這時候你會得到權杖(後續在程式裡我叫它 token) 他長的像底下這樣,要記下來,之後好像沒辦法查,只能刪掉重新發行 ~~ifoEJEylSwuaBQhQC98qiR9p4AQyyzIvGL00MoBwf0u~~ 得到權杖後,用 python 發送 line 訊息就簡單了 ## 將LineNotify設為好友 搜尋步驟 1)於LINE應用程式內依序點選「加入好友」>「ID/電話號碼」後,輸入「@linenotify」並進行搜尋 2)點選「加入」 ![](https://i.imgur.com/2XQ1Q1o.jpg) ## **程式碼**(python3.6.6) 這邊分四個部分(傳送訊息、傳送貼圖、傳送網路圖片、本地圖片) ### 第一部分(傳送訊息) #### 完整程式碼: import requests def lineNotify(token, msg): #line伺服器位址 url = "https://notify-api.line.me/api/notify" #token認證用 headers = { "Authorization": "Bearer " + token } #宣告一個物件,裡面存放要傳送的訊息 payload = {'message': msg} #將headers和data傳送至url,也就是將token和訊息傳送至line伺服器 r = requests.post(url, headers=headers, data=payload) #status_code為requests除錯用,回傳錯誤代碼,不用理會 return r.status_code if __name__ == '__main__': #從linenotify申請的token token = "token here" #傳送的訊息 msg = "hello world!" #呼叫函式 lineNotify(token, msg) ![](https://i.imgur.com/RPNpa9J.jpg) ### 第二部分(傳送貼圖) 只要在payload裡多加兩行 payload = { 'message': msg, 'stickerPackageId':1, 'stickerId':106 } #### 完整程式碼: import requests def lineNotify(token, msg): #line伺服器位址 url = "https://notify-api.line.me/api/notify" #token認證用 headers = { "Authorization": "Bearer " + token } #宣告一個物件,裡面存放要傳送的訊息 payload = { 'message': msg, 'stickerPackageId':1, 'stickerId':106 } #將headers和data傳送至url,也就是將token和訊息傳送至line伺服器 r = requests.post(url, headers=headers, data=payload) #status_code為requests除錯用,回傳錯誤代碼,不用理會 return r.status_code if __name__ == '__main__': #從linenotify申請的token token = "token here" #傳送的訊息 msg = "hello world!" #呼叫函式 lineNotify(token, msg) ![](https://i.imgur.com/roKsNjc.jpg) 參考資料,表情符號對照 ID 可參考此文件: https://devdocs.line.me/files/sticker_list.pdf ### 第三部份(傳送網路圖片) 修改及新增以下幾行程式碼 def lineNotify(token, msg, picurl): payload = { 'message': msg, 'imageThumbnail': picurl, 'imageFullsize': picurl, } if __name__ == '__main__': picurl = "http://www.tianya999.com/uploads/allimg/180808/2295-1PPQ02028.jpg" lineNotify(token, msg, picurl) #### 完整程式碼: import requests # 這邊加上picurl def lineNotify(token, msg, picurl): # line伺服器位址 url = "https://notify-api.line.me/api/notify" # token認證用 headers = { "Authorization": "Bearer " + token } # 宣告一個物件,裡面存放要傳送的訊息 payload = { 'message': msg, # 縮圖 'imageThumbnail': picurl, # 全圖 'imageFullsize': picurl, } # 將headers和data傳送至url,也就是將token和訊息傳送至line伺服器 r = requests.post(url, headers=headers, data=payload) # status_code為requests除錯用,回傳錯誤代碼,不用理會 return r.status_code if __name__ == '__main__': # 從linenotify申請的token token = "token here" # 傳送的訊息 msg = "hello world!" # 照片網址 picurl = "http://www.tianya999.com/uploads/allimg/180808/2295-1PPQ02028.jpg" # 呼叫函式 lineNotify(token, msg, picurl) ![](https://i.imgur.com/sGJUAlp.jpg) ### 第四部份(傳送本地圖片) 修改及新增以下幾行程式碼 def lineNotify(token, msg, picurl): files = {'imageFile': open(picurl, 'rb')} r = requests.post(url, headers=headers, params=payload, files=files) if __name__ == '__main__': picurl = "test.jpg" lineNotify(token, msg, picurl) #### 完整程式碼: import requests # 這邊加上picurl def lineNotify(token, msg, picurl): # line伺服器位址 url = "https://notify-api.line.me/api/notify" # token認證用 headers = { "Authorization": "Bearer " + token } # 宣告一個物件,裡面存放要傳送的訊息 payload = { 'message': msg, } files = {'imageFile': open(picurl, 'rb')} # 將headers和data傳送至url,也就是將token和訊息傳送至line伺服器 r = requests.post(url, headers=headers, data=payload, files=files) # status_code為requests除錯用,回傳錯誤代碼,不用理會 return r.status_code if __name__ == '__main__': # 從linenotify申請的token token = "token here" # 傳送的訊息 msg = "hello world!" # 照片存放位置 picurl = "test.jpg" # 呼叫函式 lineNotify(token, msg, picurl) ![](https://i.imgur.com/T2tkO2c.jpg) #### 注意事項: message為必要欄位,無法省略 參考資料:http://pythonorz.blogspot.com/2017/12/python-line-notify-line-notify-line.html lineNotify API Document:https://notify-bot.line.me/doc/en/