范例 - 发送 LINE Notify
这篇教学会运用“发送 LINE Notify 通知”以及“点击按钮,显示或清空输入文字”文章,设计出一个可以在点击按钮时,将输入的文字透过 LINE Notify 发送的功能界面。
因为 Google Colab 不支援 tkinter,所以请使用本机环境 ( 参考:使用 Python 虚拟环境 ) 或使用 Anaconda Jupyter 进行实作 ( 参考:使用 Anaconda )。
点击按钮,发送 LINE Notify 消息
参考“发送 LINE Notify 通知”文章,申请 LINE Notify 金钥 ( token ),接着修改“点击按钮,显示或清空输入文字”文章的范例,设计出一个上方为 Text 多行输入框,下方有两颗按钮的界面,界面设计完成后,修改程序,使得按下按钮时,可以将输入的文字透过 LINE Notify 的方式发送。
import tkinter as tk
import requests
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
text = tk.Text(root, height=8) # 放入多行輸入框
text.pack()
# 發送 LINE Notify 函式
def send():
msg = text.get(1.0, 'end-1c') # 取得多行輸入框的文字內容
url = 'https://notify-api.line.me/api/notify'
token = '你的 LINE Notify Token'
headers = {
'Authorization': 'Bearer ' + token
}
data = {
'message':msg
}
data = requests.post(url, headers=headers, data=data)
# 清空多行輸入框的文字內容
def clear():
text.delete(1.0,'end')
btn1 = tk.Button(root,text='發送訊息', command=send) # 發送按鈕
btn1.pack()
btn2 = tk.Button(root,text='清空', command=clear) # 清空按鈕
btn2.pack()
root.mainloop()
点击按钮,透过 LINE Notify 发送图片
延伸上方的程序,搭配“点击按钮打开文件”范例,新增一颗按钮,点击按钮时可以选择图片,选择图片后,搭配“Messagebox 消息提示框”询问是否发送,如果确认发送,就可以透过 LINE Notify 传送图片。
import tkinter as tk
from pyparsing import Token
import requests
from tkinter import messagebox
from tkinter import filedialog
import os
os.chdir('/') # 移動路徑到根目錄
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
text = tk.Text(root, height=8)
text.pack()
def send():
msg = text.get(1.0, 'end-1c')
url = 'https://notify-api.line.me/api/notify'
token = '你的 LINE Notify Token'
headers = {
'Authorization': 'Bearer ' + token
}
data = {
'message':msg
}
data = requests.post(url, headers=headers, data=data)
messagebox.showinfo('showinfo', '訊息已經發送')
def clear():
text.delete(1.0,'end')
# 發送圖片函式
def sendImg():
# 取得圖片路徑,注意有個逗號
file_path, = filedialog.askopenfilenames(filetypes=[('png', '*.png'),('jpg', '*.jpg'),('gif', '*.gif')])
# 詢問是否發送
result = messagebox.askokcancel('askokcancel', f'{file_path}\n是否發送?')
# 如果 result 為 True 表示要發送
if result:
url = 'https://notify-api.line.me/api/notify'
token = '你的 LINE Notify Token'
headers = {
'Authorization': 'Bearer ' + token
}
data = {
'message':'圖片來囉~'
}
image = open(file_path, 'rb') # 以二進位方式開啟圖片
imageFile = {'imageFile' : image} # 記錄為字典格式
data = requests.post(url, headers=headers, data=data, files=imageFile) # 發送圖片
messagebox.showinfo('showinfo', '圖片已經發送')
else:
messagebox.showinfo('showinfo', '取消發送圖片')
btn1 = tk.Button(root,text='發送訊息', command=send)
btn1.pack()
btn2 = tk.Button(root,text='清空', command=clear)
btn2.pack()
btn3 = tk.Button(root,text='傳送圖片', command=sendImg)
btn3.pack()
root.mainloop()
微信扫码关注
抖音扫码关注