# -*- coding:utf-8 -*- import requests import json class Winxin: GET_TOKEN_URL='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={ID}&corpsecret={SECRET}' ID='企业的id' APP_SECRET='app的secret' SHORT_TIME_MEDIA_URL = 'https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={ACCESS_TOKEN}&type=file' MEG_SEND_URL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}" TOUSER = 'user的id(可以是一个列表的形式)' BUY_NOW_AGENTID = 1000002 def __init__(self): self.app_token=self.get_token(self.APP_SECRET) def get_token(self,app_screat): secret=app_screat ask_url=self.GET_TOKEN_URL.format(ID=self.ID,SECRET=secret) r=requests.post(ask_url,json=True) return r.json()['access_token'] def set_token(self,app_token,app_secret): app_token=self.get_token(app_secret) #上传临时素材,返回素材id def loadShortTimeMedia(self,mediaPath): url=self.SHORT_TIME_MEDIA_URL ask_url=url.format(ACCESS_TOKEN = self.app_token) with open(mediaPath,'rb') as f: r=requests.post(ask_url,files={'file':f},json=True) return json.loads(r.text)['media_id'] def send_media_meg(self,media_id=None,mediaPath=None): if not media_id: media_id=self.loadShortTimeMedia(mediaPath) print(media_id) ask_url=self.MEG_SEND_URL.format(self.app_token) msg_content={} post_data={} msg_content['media_id'] = media_id post_data['touser'] = self.TOUSER post_data['msgtype'] = 'image' post_data['agentid'] = self.BUY_NOW_AGENTID post_data['image'] = msg_content post_data['safe'] = '0' r=requests.post(ask_url,json=post_data) return r.text def send_message(self, values): send_url = self.MEG_SEND_URL.format( self.app_token) respone = requests.post(send_url, json=values) # print(respone) x = json.loads(respone.text)['errcode'] errmsg = json.loads(respone.text)['errmsg'] if x == 0: print('Succesfully') return 200 elif x in (40014, 42001): self.set_token(self.app_token,self.APP_SECRET) self.send_message(url, values) return errmsg else: return errmsg def messages(self, message): # 使用app发送message values = { "touser": self.TOUSER, "msgtype": 'text', "agentid": self.BUY_NOW_AGENTID, "text": {'content': message}, "safe": 0 } # self.token return self.send_message(values) obj=Winxin() # r=obj.loadShortTimeMedia( 'D:/qiyeweixinTest.png') # m_id='3fRUD1O0FioBa-YrrObz9R7p8d8xRzRFIQbDGCtIlPh52P1uv018wZGNgdvn8h0f' if __name__ == '__main__': # r=obj.send_media_meg('3llwGhfMJ9YpXxf-igSwp13Ql9qq2XN8gRdbqhZe0ubU') r = obj.messages('测试文本是否正常<a>www.baidu.com</a>') print(r)