在網絡上有查到利用linebot傳送圖片只能用圖片的網址,但是我要如何用Python直接將畫出的圖形上傳到imgur來獲取網址?
理論我都懂,但是重點是,我在linebot裡面呼叫畫圖的副程式時無法畫圖與存圖片,所以我在想是因為圖檔存不了還是怎麼回事,是要轉成binary?
無法畫圖與存圖片是指會有錯誤嗎
如果這樣 把這副程式抽出來
測試到底是這副程式存圖有問題
或是在linebot呼叫因為其他原因造成的
沒有錯誤,只是單純畫圖與存圖的副程式無法被執行到,但是兩個程式(line與畫圖的)分別執行都沒有錯誤。
#畫圖與存圖的
def glucose_graph(sid,ug):
plt.figure(figsize=(240,240))
plt.plot(ug)
plt.savefig(sid+'.png')
#呼叫部分
#sid is event.message.text
message = ImageSendMessage(original_content_url=image_url+sid+'.png',preview_image_url=image_url+sid+'.png')
line_bot_api.reply_message(event.reply_token, message)
沒看到你有呼叫 副程式阿
然後你不是要用 imgur api 上傳圖片嗎
怎麼直接往line bot 丟了
還是說
image_url 是你自己建的static file server
抱歉少了一段..
#畫圖與存圖的
def glucose_graph(sid,ug):
plt.figure(figsize=(240,240))
plt.plot(ug)
plt.savefig('send.png')
CLIENT_ID = "233a2069365e"
PATH = "send.png"
im = pyimgur.Imgur(CLIENT_ID)
uploaded_image = im.upload_image(PATH, title="Uploaded with PyImgur")
return uploaded_image.link
#呼叫部分
#sid is event.message.text
#eat is list
img_url = glucose_graph(sid, eat)
message = ImageSendMessage(original_content_url=img_url,preview_image_url=img_url)
line_bot_api.push_message(to, message)
google 註冊 imgur 搞了好久...
我實際測試
可以存圖片並且上傳imgur也拿到網址
畫圖是參考其他地方的
應該不影響
import numpy as np
import matplotlib.pyplot as plt
import pyimgur
def glucose_graph():
"""
plt.figure(figsize=(240,240))
plt.plot(ug)
plt.savefig('send.png')
"""
normal_samples = np.random.normal(size = 100000)
uniform_samples = np.random.uniform(size = 100000)
plt.hist(normal_samples)
plt.savefig('send.png')
CLIENT_ID = "************"
PATH = "send.png"
im = pyimgur.Imgur(CLIENT_ID)
uploaded_image = im.upload_image(PATH, title="Uploaded with PyImgur")
return uploaded_image.link
img_url = glucose_graph()
print(img_url)
return 的 img_url
https://imgur.com/9I8mwxy
另外確認一下
你的CLIENT_ID應該是故意拿掉幾個字的吧
因為我用會拿到invaild id 的訊息
如果不是的話...
感謝你的回覆,問題解決了