python3实现企业微信发送媒体消息和文字消息

 

 

 

 python3实现企业微信发送媒体消息和文字消息

 

 

 

# -*- 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)

 

python3实现企业微信发送媒体消息和文字消息

上一篇:微信公众号第三方接口的调用


下一篇:微信小程序--调用外部服务器接口