目录

消息类型

文本

markdown

图片

图文

文件

卡片消息

发送请求


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

消息类型

文本

## qywx_data.pydef text():  # 发送文本textmessage_body = {"msgtype": "text","text": {"content": "羔裘豹祛,自我人居居。岂无他人?维子之故。\n羔裘豹褎,自我人究究。岂无他人?维子之好。","mentioned_list": ["张三", '@all'],"mentioned_mobile_list": ["18985558888"]},"at": {"atMobiles": [],"isAtAll": False}}return textmessage_body

参数

是否必填

说明

msgtype

消息类型,此时固定为text

content

文本内容,最长不超过2048个字节,必须是utf8编码

mentioned_list

userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list

mentioned_mobile_list

手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人

markdown

## qywx_data.py
def markdown():  # 发送markdownmarkdownmessage_body = {"msgtype": "markdown","markdown": {"content": "# <font color='info'>**《诗经·羔裘》**</font>\n" +"> ### <font color='warning'>羔裘豹祛,自我人居居。岂无他人?维子之故。</font>\n" +"> #### <font color='warning'>羔裘豹褎,自我人究究。岂无他人?维子之好。</font>\n" +"[点击访问](https://hanyu.baidu.com/shici/detail?pid=c79ce4bc0cf64ad3acfb8f69449ace1e)","mentioned_list": ["张三"],"mentioned_mobile_list": ["18988855555"]},"at": {"atMobiles": [],"isAtAll": False}}return markdownmessage_body

参数

是否必填

说明

msgtype

消息类型,此时固定为markdown

content

markdown内容,最长不超过4096个字节,必须是utf8编码

样式说明:

1、标题(支持1至6级标题,注意#与文字中间要有空格)

# 标题一

## 标题二

### 标题三

#### 标题四

##### 标题五

###### 标题六

2、加粗:**bold**

3、行内代码段(暂不支持跨行):`code`

4、引用:> 引用文字

5、字体颜色(只支持3种内置颜色)

<font color="info">绿色</font>

<font color="comment">灰色</font>

<font color="warning">橙红色</font>

图片

## qywx_data.py
def image(filename):  # 发送图片import base64, hashlibwith open(filename, 'rb') as f:imagedata = f.read()encodestr = base64.b64encode(imagedata)image_data = str(encodestr, 'utf-8')with open(filename, 'rb') as f:md = hashlib.md5()md.update(f.read())image_md5 = md.hexdigest()imagemessage_body = {"touser": "UserID1|UserID2|UserID3",  # 指定接收消息的成员,成员ID列表(多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为"@all",则向该企业应用的全部成员发送"msgtype": 'image',"image": {"base64": image_data,"md5": image_md5,"mentioned_list": ["张三"],"mentioned_mobile_list": ["18455557778"]}}return imagemessage_body

参数

是否必填

说明

msgtype

消息类型,此时固定为image

base64

图片内容的base64编码

md5

图片内容(base64编码前)的md5值

图文

def news():  # 图文消息newsmessage_body = {"msgtype": "news","news": {"articles": [  # 图文消息,一个图文消息支持1到8条图文{"title": "《邶风 ·式微》",  # 标题,不超过128个字节,超过会自动截断"description": "式微,式微,胡不归?\n微君之故,胡为乎中露!\n式微,式微,胡不归?\n微君之躬,胡为乎泥中!",# 描述,不超过512个字节,超过会自动截断"url": "https://baike.baidu.com/item/%E9%82%B6%E9%A3%8E%C2%B7%E5%BC%8F%E5%BE%AE/19663937?fr=aladdin","picurl": "https://p2.itc.cn/q_70/images03/20210802/ec3f13a7216345968524b65787527a65.jpeg"},{"title": "《邶风 ·北风》","description": "北风其凉,雨雪其雱。惠而好我,携手同行。其虚其邪?既亟只且!\n北风其喈,雨雪其霏。惠而好我,携手同归。其虚其邪?既亟只且!\n莫赤匪狐,莫黑匪乌。惠而好我,携手同车。其虚其邪?既亟只且!","url": "https://baike.baidu.com/item/%E9%82%B6%E9%A3%8E%C2%B7%E5%8C%97%E9%A3%8E/19666623?fromtitle=%E8%AF%97%E7%BB%8F%C2%B7%E9%82%B6%E9%A3%8E%C2%B7%E5%8C%97%E9%A3%8E&fromid=53819462&fr=aladdin","picurl": "https://img2.baidu.com/it/u=1970453247,2917096554&fm=253&fmt=auto&app=138&f=JPEG?w=650&h=447"}]}}return newsmessage_body

参数

是否必填

说明

msgtype

消息类型,此时固定为news

articles

图文消息,一个图文消息支持1到8条图文

title

标题,不超过128个字节,超过会自动截断

description

描述,不超过512个字节,超过会自动截断

url

点击后跳转的链接。

picurl

图文消息的图片链接,支持JPG、PNG等格式,较好的效果为大图 1068*455,小图150*150。

文件

def file(webHookUrl, filename):import requestsheaders = {"Accept": "application/json, text/plain, */*","Accept-Encoding": "gzip, deflate","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36"}with open(filename, 'rb') as f:filedata = f.read()upload_url = f'{webHookUrl}&type=file'response = requests.post(url=upload_url, headers=headers, files={'file': filedata})print(response.text)json_res = response.json()media_id = json_res['media_id']filemessage_body = {"msgtype": "file","file": {"media_id": media_id}}return filemessage_body

参数

是否必填

说明

msgtype

消息类型,此时固定为file

media_id

文件id,通过下文的文件上传接口获取

卡片消息

def template_card():template_card_body = {"msgtype": "template_card","template_card": {"card_type": "text_notice",  # 模板卡片类型,文本通知型卡片填写 "text_notice"# "source": {#     "icon_url": "https://www.baidu.com/img/flexible/logo/utouch.png",#     "desc": "企业微信",#     "desc_color": 3# # },  # 卡片来源样式信息,不需要来源样式可不填写# "action_menu": {#     "desc": "卡片副交互辅助文本说明",#     "action_list": [#         {"text": "接受推送", "key": "A"},#         {"text": "不再推送", "key": "B"}#     ]# },# "task_id": "task_id",  # 任务id,同一个应用任务id不能重复,只能由数字、字母和“_-@”组成,最长128字节,填了action_menu字段的话本字段必填"main_title": {"title": "欢迎使用企业微信","desc": "您的好友正在邀请您加入企业微信"  # 标题辅助信息,建议不超过44个字,(支持id转译)},  # 一级标题,建议不超过36个字,文本通知型卡片本字段非必填,但不可本字段和sub_title_text都不填,(支持id转译)"emphasis_content": {"title": "关键数据内容",  # 关键数据样式的数据内容,建议不超过14个字"desc": "关键数据描述"  # 关键数据样式的数据描述内容,建议不超过22个字},  # 关键数据样式"quote_area": {"type": 1,  # 引用文献样式区域点击事件,0或不填代表没有点击事件,1 代表跳转url,2 代表跳转小程序"url": "https://baidu.com",  # 点击跳转的url,quote_area.type是1时必填"appid": "APPID",  # 点击跳转的小程序的appid,必须是与当前应用关联的小程序,quote_area.type是2时必填"pagepath": "PAGEPATH",  # 点击跳转的小程序的pagepath,quote_area.type是2时选填"title": "引用文本标题","quote_text": "企业微信真的很好用~\nBalian:超级好的一款软件!"  # 引用文献的引用案例},  # 引用文献样式"sub_title_text": "这是一个二级普通文本!",  # 二级普通文本,建议不超过160个字,(支持id转译)"horizontal_content_list": [{"keyname": "开发","value": "三毛"},{"keyname": "企微官网",  # 二级标题,建议不超过5个字"value": "点击访问",  # 二级文本,如果horizontal_content_list.type是2,该字段代表文件名称(要包含文件类型),建议不超过30个字,(支持id转译)"type": 1,  # 链接类型,0或不填代表不是链接,1 代表跳转url,2 代表下载附件,3 代表点击跳转成员详情"url": "https://developer.work.weixin.qq.com/document/path/90372"},{"keyname": "企微下载","value": "企业微信.apk","type": 2,"media_id": "MEDIAID"  # 附件的media_id,horizontal_content_list.type是2时必填}],  # 二级标题+文本列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过6"jump_list": [{"type": 1,  # 跳转链接类型,0或不填代表不是链接,1 代表跳转url,2 代表跳转小程序"url": "https://work.weixin.qq.com/?from=openApi","title": "企业微信官网"  # 跳转链接样式的文案内容,建议不超过18个字},{"type": 2,"appid": "APPID","pagepath": "PAGEPATH","title": "跳转小程序"}],  # 跳转指引样式的列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过3"card_action": {"type": 1,"url": "https://work.weixin.qq.com/?from=openApi","appid": "APPID",  # 跳转事件的小程序的appid,必须是与当前应用关联的小程序,card_action.type是2时必填"pagepath": "PAGEPATH"  # 跳转事件的小程序的pagepath,card_action.type是2时选填}  # 整体卡片的点击跳转事件,text_notice必填本字段}}return template_card_body

更多类型可查看接口文档:更新模版卡片消息 - 文档 - 企业微信开发者中心 (qq.com)

发送请求

import requests
import json
import qywx_datadef push_report(webHookUrl):header = {"Content-Type": "application/json"}# send_data = json.dumps(qywx_data.text)  # 将字典类型数据转化为json格式# send_data = json.dumps(qywx_data.markdown)# send_data = json.dumps(qywx_data.image(r'D:\zhuomian\test_file\33.png'))send_data = json.dumps(qywx_data.news())ChatBot = requests.post(url=webHookUrl, data=send_data, headers=header)opener = ChatBot.json()if opener["errmsg"] == "ok":print(u"%s 通知消息发送成功!" % opener)else:print(u"通知消息发送失败,原因:{}".format(opener))if __name__ == '__main__':webHookUrl = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={qywx_data.user_key['交流群']}"push_report(webHookUrl)

python-消息推送(企业微信)相关推荐

  1. SAP-ABAP-企业微信:ZCSM37-后台JOB异常检查主动推送企业微信群

    场景:异常JOB主动推送企业微信群 (企业微信机器人可百度创建,注意群不能有企业外的人员,否则接口无效) 报错提示场景:(报错图片如下) 1.JOB异常导致任务消失 2.通JOB多个任务同时执行 3. ...

  2. SAP 接口主动推送企业微信异常消息

    "推送企业微信格式lv_json = '{ "msgtype": "markdown", "markdown": ' && ...

  3. 企业微信api接口调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /*** 触发企业微信推送微信好友列表* @author wechat:happybabby110* @blog http://www.wlka ...

  4. 企业微信SDK接口API调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /**      * 触发企业微信推送微信好友列表      * @author wechat:happybabby110      * @bl ...

  5. 企业微信api接口调用-触发推送企业微信联系人列表

    企业微信SDK接口API调用-触发推送企业微信联系人列表 /** * 触发推送企业微信联系人列表任务 * @author wechat:happybabby110 * @blog http://www ...

  6. 企业微信SDK接口API调用-触发推送企业微信联系人列表

    /**      * 触发推送企业微信联系人列表任务      * @author wechat:happybabby110      * @blog http://www.wlkankan.cn   ...

  7. gitlab推送企业微信机器人项目代码

    一.gitlab推送企业微信机器人项目代码 # coding=utf-8 """@Project :pachong-master@File :gitlab_wechat. ...

  8. 【java】java天气消息推送至微信公众号详细教程

    文章目录 读前必看 测试号推送 天气接口获取数据 谁说程序员不懂浪漫? 将你的关心 推送至微信公众号 给女朋友及时的关怀~(这位同学 你女朋友呢?) 读前必看 关于微信开发平台,小程序和公众号是不一样 ...

  9. python实时监控滚动日志,推送企业微信消息

    在运维岗位中经常巡检系统指标或者查看程序的日志,对实时生成的log文件,进行实时滚动监控 例如:需要对程序的日志进行提取关键字,并且发送到企业微信 代码示例: #!/usr/bin/python3 # ...

最新文章

  1. 服务器异常代码413问题
  2. ---WebCam网络摄像头11 http协议
  3. 风险预测模型_随访78个月,仁济医院完成世界首个间质性肺病风险预测模型
  4. Leetcode | Pow(x, n)
  5. android.cat 镜像,Android开发利器之pidcat安装方式
  6. redis集群原理(简版)
  7. PLC通过智能网关,实现HTTP协议的POST请求,与服务端JSON格式双向通讯
  8. win10 远程桌面连接设置
  9. VBA 字典方法及属性介绍
  10. 每日英语Daily English
  11. 计算机技能鉴定高级,职业技能鉴定计算机(高级)试题.pdf
  12. 高等数学期末总复习DAY12.复合函数的链式求导、隐函数求导、
  13. java公路车为什么会被喷,最全指南
  14. 【解决】ocam录制失败。 导致: WASRecord: pAudioClient- Initialize failed. (hr=0x80070005
  15. mysql属于dbms还是dbs_DB、DBMS和DBS三者之间有什么关系
  16. 五点三次平滑+python实现
  17. 货代专业术语中英文对照
  18. SteamVR Unity Tool Kit(二):激光与移动
  19. YOLOV5模型训练之JSON格式的数据集制作,一个py程序搞,搞不定邮件联系,我帮你!!!!
  20. mysql查看表空间剩余大小_查询表空间的总大小,剩余表空间,已用空间,表占用大小,某天占用的大小...

热门文章

  1. 综合专题学期实训IV综合报告
  2. 用python代码写出乘法口诀表
  3. Scratch《侠盗飞车》游戏源码.sb文件
  4. 磁盘、柱面、磁道、磁头、扇区详解
  5. oracle tnsping 怎么用,oracle 11.2.0 tnsping ORCL; 报错,该如何解决
  6. uniapp - 阿里图库字体图标使用
  7. 无法打开xpdf软件包
  8. 电脑控制手机 如何快速删除所有手机的联系人
  9. HDU 6628 [2019 Multi-University Training Contest 5]
  10. url、src、herf的区别