Python调用企微机器人: 发送常用格式汇总

企微接口文档

发送应用消息 - 接口文档 - 企业微信开发者中心

发送格式

应用支持推送文本、图片、视频、文件、图文等类型。

~~~以下列举常用格式 示例~~~

1.发送文本

代码如下:

复制代码
def sendtxt_robotmsg(self):
     # 正式key
     wx_key = "xx"
     wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
     headers = {'Content-Type': 'application/json'}
     //发送消息时在企微自动@的人:xx值必须为同事注册企微的手机号或姓名
	 hbpeople = ["xx"]
     msg = '请关注'
     testdata = json.dumps({"msgtype": "text", "text": {"content": msg, "mentioned_list": hbpeople}})
     r = requests.post(wx_webhookurl, data=testdata, headers=headers, verify=False)
     print(r.text)
     return r

发送结果:

2.发送图片

代码如下:

图片存放在这里:

复制代码
#图片所在文件夹路径
SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")

def sendimage_robotmsg():
    # 调试key
    wx_key = "xx"
    wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    headers = {'Content-Type': 'application/json'}
    #图片(base64编码前)最大不能超过2M,支持JPG,PNG格式
    imgPath = os.path.join(DATAS_DIR, "有福气.png")
    with open(imgPath,"rb") as f:
        fd=f.read()
        base64Content=str(base64.b64encode(fd),"utf-8")
    with open(imgPath,"rb") as f:
        fd=f.read()
        md = hashlib.md5()
        md.update(fd)
        md5Content = md.hexdigest()
    testdata = {"msgtype": "image","image": {"base64": base64Content,"md5": md5Content}}
    r = requests.post(wx_webhookurl, headers=headers, json=testdata)
    print(r.text)
    return r

发送结果:

3.发送文件

文件路径:

代码如下:

复制代码
SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")


def upload_weixin(key=None, filename=None):
    """
    上传附件到企业微信,获得media_id.然后发送消息通知,可查看文件
    """
    if not key:
        print("key不能为空")
        raise
    # 请求地址
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key={}&type=file".format(key)
    # 请求头
    headers = {"Content-Type": "multipart/form-data"}
    # 请求数据,是rb读取文件流
    data = {"file": open(filename, "rb")}
    # 发送请求
    res = requests.post(url, files=data, headers=headers).json()
    return res.get("media_id")

def sendfile_robotmsg():
    #key
    wx_key = "xx"
    wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    headers = {'Content-Type': 'application/json'}
    filename = os.path.join(DATAS_DIR, "xx.html")
    print(filename)
    medid= upload_weixin(wx_key,filename)
    data = {
        "msgtype": "file",
        "file": {
            "media_id": medid
        }
    }
    print(medid)
    r = requests.post(url=wx_webhookurl,headers=headers, json=data)

    print(r.text)
    return r

发送结果:

4.发送图文

文件路径:

代码如下:

复制代码
SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")


def sendimagetext_robotmsg():
    # 正式key
    wx_key = "xx"
    wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    headers = {'Content-Type': 'application/json'}
    imgPath = os.path.join(DATAS_DIR, "有福气.png")

    testdata = {
   "msgtype" : "news",
   "agentid" : 1,
   "news" : {
       "articles" : [
           {
               "title" : "测试一下",
               "description" : "测试",
               "url" : "URL",
               "picurl":"",
        	   "pagepath": imgPath
           }
        ]
   },
   "enable_id_trans": 0,
   "enable_duplicate_check": 0,
   "duplicate_check_interval": 1800
}
    r = requests.post(wx_webhookurl, headers=headers, json=testdata)
    print(r.text)
    return r

发送结果:

相关推荐
砚底藏山河3 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融
十五年专注C++开发3 小时前
pybind11:一个跨C++和Python平台的编程库
开发语言·c++·python·pybind11
CodeYp20193 小时前
第11讲:stack 和 queue
开发语言·c++·queue·stack
炘爚3 小时前
数据结构算法总结
数据结构·python·算法
信誓旦旦的程序猿3 小时前
【Python量化实战宝典 #18】MACD 金叉死叉手册:DIF、DEA、柱体全拆解(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
Patrick在香港3 小时前
一个加 1 的动作,把最大值变成了最小值
python·numpy·数据类型·整数溢出·数据精度
咩咩啃树皮3 小时前
JavaScript 异步流程为什么容易失控?从回调到可维护设计
开发语言·javascript·ecmascript
沫璃染墨3 小时前
《Qt从零入门系列(十五):Qt线程安全与锁机制详解——从QMutex到RAII与读写锁实战》
开发语言·c++·qt·安全·交互·线程·qt6.3
Misnearch4 小时前
第7章 面向对象技术
java·开发语言·软考
weixin_BYSJ19874 小时前
电竞先锋网站---附源码02032
java·vue.js·spring boot·python·django·tomcat·php