python向企業(yè)微信發(fā)送文字和圖片消息的示例
吐槽一下企業(yè)微信的api文檔真的不好讀······
企業(yè)微信本來(lái)是有功能,可以直接把圖片顯示到正文的,但是那個(gè)api我調(diào)用一直出錯(cuò),各種折騰也沒解決。后來(lái)感覺就算了,沒必要,用url拼接在文字中也行,這樣的好處就是以后可以換圖床,不局限在企業(yè)微信內(nèi)部(好像免費(fèi)版一天之內(nèi)可以上傳200張圖片,所以如果需求比較大的話可以采用第三方圖床)
我把上傳部分封裝了一個(gè)使用新線程的方法,以防使用的時(shí)候因?yàn)樯蟼骺ㄗ≈骶€程(親測(cè)如果不這樣的話確實(shí)會(huì)卡住)
import requests
import json
from threading import Thread
import cv2
import os
class Wechat_Info():
def __init__(self):
self.partyID = ''
self.corpID = ''
self.secret = ''
self.agentID = ''
self.token = None
self.pic = None
def __get_token(self, corpid, secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {
"corpid": corpid,
"corpsecret": secret
}
r = requests.get(url=Url, params=Data)
token = r.json()['access_token']
return token
def send_message(self, message):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(
self.__get_token(self.corpID, self.secret))
data = {
"toparty": self.partyID,
"msgtype": "text",
"agentid": self.agentID,
"text": {
"content": message
},
"safe": "0"
}
result = requests.post(url=url, data=json.dumps(data))
return result.text
def get_media_url(self, path): ##上傳到圖片素材 圖片url
Gtoken = self.__get_token(self.corpID, self.secret)
img_url = "https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token={}".format(Gtoken)
files = {'media': open(path, 'rb')}
r = requests.post(img_url, files=files)
re = json.loads(r.text)
# print("media_id: " + re['media_id'])
return re['url']
def send_pic(self, pic_path):
img_url = self.get_media_url(pic_path)
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(
self.__get_token(self.corpID, self.secret))
data = {
"toparty": self.partyID,
"msgtype": "text",
"agentid": self.agentID,
"text": {
"content": img_url
},
"safe": "0"
}
result = requests.post(url=url, data=json.dumps(data))
return result.text
def send_violence_warning(self, pic_path):
img_url = self.get_media_url(pic_path)
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(
self.__get_token(self.corpID, self.secret))
data = {
"toparty": self.partyID,
"msgtype": "text",
"agentid": self.agentID,
"text": {
"content": '【管理員注意】,有校園暴力行為發(fā)生,請(qǐng)及時(shí)處理!監(jiān)控圖片>>' + img_url
},
"safe": "0"
}
result = requests.post(url=url, data=json.dumps(data))
return result.text
def send_violence_warning_read_path_from_class(self):
pic_path = 'temp.jpg'
cv2.imwrite(pic_path, self.pic)
self.send_violence_warning(pic_path)
os.remove(pic_path)
def send_violence_warning_in_new_thread(self, pic):
self.pic = pic
thread = Thread(target=self.send_violence_warning_read_path_from_class)
thread.start()
if __name__ == '__main__':
wechat_info = Wechat_Info()
# result = wechat_info.send_message('微信測(cè)試_2020')
# result = wechat_info.send_pic('C:\\Users\\JiaDing\\Desktop\\pic.jpg')
result = wechat_info.send_violence_warning('C:\\Users\\JiaDing\\Desktop\\pic.jpg')
print(result)
在主線程里面調(diào)用那個(gè)send_violence_warning_in_new_thread,把opencv的圖片傳進(jìn)來(lái)就行
效果:

雖然是url,但是效果其實(shí)也挺好的,點(diǎn)一下就能顯示了,即使是第三方圖床也沒有提示什么的,操作速度也很快,沒有其他幺蛾子
以上就是python向企業(yè)微信發(fā)送文字和圖片消息的示例的詳細(xì)內(nèi)容,更多關(guān)于python發(fā)送文字和圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 使用Python實(shí)現(xiàn)給企業(yè)微信發(fā)送消息功能
- 教你利用python實(shí)現(xiàn)企業(yè)微信發(fā)送消息
- 用python發(fā)送微信消息
- python制作定時(shí)發(fā)送信息腳本的實(shí)現(xiàn)思路
- python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的示例代碼
- python實(shí)現(xiàn)給微信指定好友定時(shí)發(fā)送消息
- python實(shí)現(xiàn)微信定時(shí)每天和女友發(fā)送消息
- Python實(shí)現(xiàn)向好友發(fā)送微信消息優(yōu)化篇
相關(guān)文章
Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能,可實(shí)現(xiàn)掃描本機(jī)開放端口的功能,涉及Python socket模塊與Thread多線程模塊相關(guān)使用技巧,需要的朋友可以參考下2019-02-02
70行Python代碼實(shí)現(xiàn)一個(gè)桌面自動(dòng)翻譯工具
PySimpleGUI是一款很棒的自動(dòng)化輔助模塊,讓你更輕松的實(shí)現(xiàn)日常任務(wù)的自動(dòng)化。本文將利用PySimpleGUI編寫一個(gè)桌面自動(dòng)翻譯工具,感興趣的可以了解一下2022-07-07
對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析
今天小編就為大家分享一篇對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
tf.nn.conv2d與tf.layers.conv2d的區(qū)別及說(shuō)明
這篇文章主要介紹了tf.nn.conv2d與tf.layers.conv2d的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
pycharm中TensorFlow調(diào)試常見問(wèn)題小結(jié)
本文主要介紹了在pycharm下調(diào)用tensorflow庫(kù)時(shí)會(huì)出現(xiàn)的問(wèn)題,在本文做個(gè)小結(jié),也給自己留個(gè)筆記,感興趣的可以了解一下2021-06-06
Python matplotlib超詳細(xì)教程實(shí)現(xiàn)圖形繪制
matplotlib 模塊不僅提供了繪制統(tǒng)計(jì)圖表的功能,還支持繪制圓形、正方形、矩形等各種圖形。這篇文章主要為大家詳細(xì)介紹了利用matplotlib.patches 繪制一些基本圖形,快來(lái)跟隨小編一起學(xué)習(xí)吧2021-12-12

