最新要闻
- 2023年安卓机皇!聊聊三星S23系列与前代有哪些不同
- 当前观点:高颜值+顶级做工!铭瑄RTX 4080 iCraft OC16G瑷珈显卡评测:三风扇稳压71℃
- 全球讯息:奥迪E-Tron撞车 电池包撞飞后起火!官方:不清楚是安全功能还是隐患
- 天天观热点:投屏480p、禁HDMI被吐槽割韭菜!爱奇艺利润将暴增 外资力挺
- 全球微速讯:《森林之子》PC配置需求公布 1080Ti显卡就能爽玩
- 当前动态:Wine 8.1版本正式发布:首次默认启用“Windows 10”前缀
- 为博眼球太奇葩 四川男子用扳手代替方向盘开车拍视频:结果被扣4分
- 今日热闻!苹果刚发布的2299元新品HomePod 2仅支持老掉牙Wi-Fi 4:原因不服不行
- “聪明的”ChatGPT 是否拥有生命?
- 天天热议:速度是根本!威刚UE800 U盘评测:真正跑满1GB/s
- 报道:韩国刷新世界最低生育率纪录:无人店铺数量持续增长 人工智能需求强
- 苹果营收4年来首降 库克:裁员是最后手段
- 低于20万会买吗?特斯拉新款Model 3外形曝光:续航、动力大增
- 天天热讯:今晚油价或迎年内第二次上调:预计每升上涨0.17元
- 播报:奔驰销售吐槽:向每位进店客户推荐买新能源 直到客户崩溃或打我
- 全球焦点!微软回应Xbox 360商店关闭:只是搞错了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Python借助企业微信群机器人推送消息和文件
企业微信功能日益强大,腾讯官方也提供了丰富的API供开发者实现企业微信的很多自动化场景。比如,如何给某个企业微信群发送消息、图片或者文件,甚至@指定群用户?别急,看小爬君轻松教会大家。
Step1:在企业微信PC端或者移动端找几个用户创建一个企业微信群(步骤略过);
(资料图)
STEP2:在企业微信群中添加一个【群机器人】;
点击企业微信群聊天界面,点击右上角【···】按钮,然后点击【添加群机器人】,如下图所示:
然后,我们在该企业微信群就能看到群成员【群机器人】了,在群成员界面,鼠标悬停在该【群机器人】位置,就可以看到该机器人的具体信息,如下图所示:
有了上面的两个步骤,这样一个专属的群机器人就创建好了,其中上图中的Webhook属性(url地址)是该机器人的关键信息,类似于机器人ID。
现在我们来看下如何用该群机器人往群里发消息,发图片,发文件。想要看完整的企业微信API文档的,请移步【腾讯企业微信开发者中心】页面:群机器人配置说明 - 文档 - 企业微信开发者中心 (qq.com)
一、发送文本类型数据
{ "msgtype": "text", "text": { "content": "广州今日天气:29度,大部分多云,降雨概率:60%", "mentioned_list":["wangqing","@all"], "mentioned_mobile_list":["13800001111","@all"] }}
参数 | 是否必填 | 说明 |
---|---|---|
msgtype | 是 | 消息类型,此时固定为text |
content | 是 | 文本内容,最长不超过2048个字节,必须是utf8编码 |
mentioned_list | 否 | userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list |
mentioned_mobile_list | 否 | 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人 |
用python来实现的代码示例如下:
1 import os,re,time,datetime,base64,requests,json 2 from requests_toolbelt import MultipartEncoder 3 import json 4 5 def SendGroupMsg(textContent, webHookUrl, mentioned_list=[],mentioned_mobile_list=[]): 6 """ 7 发送微信群组机器人消息 8 :param textContent: 消息内容 9 :param webHookUrl: 群组机器人WebHook10 :param mentioned_list: userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人11 :param mentioned_mobile_list: 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人12 :return:13 """14 # url为群组机器人WebHook,配置项15 url = webHookUrl16 headers = {17 "content-type": "application/json"18 }19 msg = {"msgtype": "text", 20 "text": {21 "content": textContent, 22 "mentioned_list":mentioned_list,23 "mentioned_mobile_list": mentioned_mobile_list24 }} # 发送文本消息25 # 由于API接收的是json字符串,故需要转化一下26 data = json.dumps(msg, ensure_ascii=False).encode("utf-8")27 # 发送请求28 try:29 result = requests.post(url, headers=headers, data=data)30 return True31 except Exception as e:32 # print("Requset Failed:", e)33 return False
二、发送群文件
{ "msgtype": "file", "file": { "media_id": "3a8asd892asd8asd" }}
在发送文件之前,我们需要请求如下接口,获取到media_id参数。
文件上传接口
素材上传得到media_id,该media_id仅三天内有效media_id只能是对应上传文件的机器人可以使用
请求方式:POST(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE
使用multipart/form-data POST上传文件, 文件标识名为"media"参数说明:
参数 | 必须 | 说明 |
---|---|---|
key | 是 | 调用接口凭证, 机器人webhookurl中的key参数 |
type | 是 | 固定传file |
POST的请求包中,form-data中媒体文件标识,应包含有filename、filelength、content-type等信息
filename标识文件展示的名称。比如,使用该media_id发消息时,展示的文件名由该字段控制
有了这两个接口的API,用python来实现【发送群文件】就不是难题了:
import os,re,time,datetime,base64,requests,jsonfrom requests_toolbelt import MultipartEncoderfrom urllib import parseimport jsondef SendGroupFile(filepath, webHookUrl): """ 发送微信群组机器人文件 :param filepath: 文件路径 :param webHookUrl: 群组机器人WebHook :return: """ # url为群组机器人WebHook,配置项 url = webHookUrl headers = { "content-type": "application/json" } # 发送文件需要先上传文件获取media_id media_id = UploadFile(filepath, url) req_json = dict() req_json["msgtype"] = "file" req_json["file"] = dict() req_json["file"]["media_id"] = media_id # 发送请求 try: result = requests.post(url, headers=headers, json=req_json) return True except Exception as e: print("企业微信机器人发送文件失败,详细信息:" + str(e)) return Falsedef UploadFile(filepath, webHookUrl): """ 企业微信机器人上传文件,发送文件前需要先上传--要求文件大小在5B~20M之间 :param filepath: 文件路径 :param webHookUrl: 群组机器人WebHook :return: media_id """ # url为群组机器人WebHook,配置项 url = webHookUrl params = parse.parse_qs( parse.urlparse( webHookUrl ).query ) webHookKey=params["key"] upload_url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key={webHookKey}&type=file" headers = {"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"} filename = os.path.basename(filepath) try: multipart = MultipartEncoder( fields={"filename": filename, "filelength": "", "name": "media", "media": (filename, open(filepath, "rb"), "application/octet-stream")}, boundary="-------------------------acebdf13572468") headers["Content-Type"] = multipart.content_type resp = requests.post(upload_url, headers=headers, data=multipart) json_res = resp.json() if json_res.get("media_id"): # print(f"企业微信机器人上传文件成功,file:{filepath}") return json_res.get("media_id") except Exception as e: # print(f"企业微信机器人上传文件失败,file: {filepath}, 详情:{e}") print("企业微信机器人上传文件失败,详细信息:" + str(e)) return ""
感兴趣的童鞋,快动手试试吧!
快来扫码关注我的公众号 获取更多爬虫、数据分析的知识!
-
快资讯丨阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决
BigKey、HotKey是日常生产中经常会碰到由于redis集群的不当访问,造成的线上问题。而且,这也是常见的面...
来源: Python借助企业微信群机器人推送消息和文件
【天天聚看点】【验证码逆向专栏】某验“初代”滑块验证码逆向分析
快资讯丨阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决
Pandas练习
2023年安卓机皇!聊聊三星S23系列与前代有哪些不同
当前观点:高颜值+顶级做工!铭瑄RTX 4080 iCraft OC16G瑷珈显卡评测:三风扇稳压71℃
全球讯息:奥迪E-Tron撞车 电池包撞飞后起火!官方:不清楚是安全功能还是隐患
天天观热点:投屏480p、禁HDMI被吐槽割韭菜!爱奇艺利润将暴增 外资力挺
全球微速讯:《森林之子》PC配置需求公布 1080Ti显卡就能爽玩
看点:微信对话生成器,生成微信聊天记录,聊天记录生成器
环球快看:跳表java实现(可直接运行)
热消息:[概率论与数理统计]笔记:5.5 单正态总体的参数假设检验
依赖注入(DI注入)
当前动态:Wine 8.1版本正式发布:首次默认启用“Windows 10”前缀
为博眼球太奇葩 四川男子用扳手代替方向盘开车拍视频:结果被扣4分
今日热闻!苹果刚发布的2299元新品HomePod 2仅支持老掉牙Wi-Fi 4:原因不服不行
“聪明的”ChatGPT 是否拥有生命?
天天热议:速度是根本!威刚UE800 U盘评测:真正跑满1GB/s
世界新动态:【算法训练营day38】动态规划理论基础 LeetCode509. 斐波那契数 LeetCode70. 爬楼梯 LeetCode746. 使用最小花
报道:韩国刷新世界最低生育率纪录:无人店铺数量持续增长 人工智能需求强
苹果营收4年来首降 库克:裁员是最后手段
低于20万会买吗?特斯拉新款Model 3外形曝光:续航、动力大增
天天热讯:今晚油价或迎年内第二次上调:预计每升上涨0.17元
播报:奔驰销售吐槽:向每位进店客户推荐买新能源 直到客户崩溃或打我
Webpack解析与讲解
全球焦点!微软回应Xbox 360商店关闭:只是搞错了
全球最新:每逢佳节胖三斤 专家提醒:节后运动“甩膘”要注意三点
天天快资讯丨el表达式注入漏洞
环球快报:13倍浓缩:日本隅田川胶囊咖啡1.16元/杯史低
充会员才解封?爱奇艺回应一号三用被封:技术故障 跳转错误页面
《卧龙》天柱山介绍公开:红晶小姐姐美如画!
天天热点!对Intel穷追猛打!AMD Zen4c 128核心上半年杀来
突然暴雷!世界第一辆量产太阳能汽车 黄了
讯息:操作系统的体系结构
天天热头条丨2023年新势力首月销量成绩单:理想最显眼 零跑暴跌
全球新资讯:蔚来大降价超10万?总裁回应:没有 展车最多2.4万优惠
【全球报资讯】比尔·盖茨盛赞ChatGPT:称其“不亚于互联网诞生”
环球视点!女子拍抖音私闯已关闭自然保护区 或处5000元以下罚款
一个手机号搞定!微信正式支持注册小号:生活、工作能分开吗?
世界语言的分布是什么?世界语言难度排行
三星手机怎么截屏图片?三星手机如何防盗?
韩国游戏公司有哪些?韩国游戏公司排名
穿越火线什么时候出的?穿越火线怎么安装?
饱和石灰水是什么意思?饱和石灰水变浑浊的原因是什么?
诺基亚5000刚出来是多少钱?诺基亚5000手机参数
宽带连接怎么创建?宽带连接怎么设置到桌面上?
一次JSF上线问题引发的MsgPack深入理解,保证对你有收获
全球快看点丨springboot实战——总结
全球观点:(笔记)【NTP系列:05】NTP时间同步失败:Windows(W32Time)作为NTP时钟源服务端,Linux作为客户端
[概率论与数理统计]笔记:5.4 假设检验概述
西门子手机怎么样?西门子手机哪年进入中国?
联想y470双显卡驱动怎么装?联想y470双显卡怎么切换?
dota2怎么改成国服?DOTA2配置要求是什么?
世界新动态:传奇大佬、联想PC全球第一的功臣蒋凡可·兰奇去世 享年69岁
不叫003 极氪第三款车型ZEEKR X官图发布:20万买不
世界观焦点:智商碾压 新养的边牧把养5年金毛拐跑丢弃
当前滚动:办公党等到了!小米笔记本12.4二合一发布:2.5K触屏 2999元
荣耀Magic5通过3C认证:1/1.1英寸主摄、标配66W充电头
世界关注:非常强大的gsap动画
2023年值得收藏的开源或免费的web应用防火墙
keycloak~JWT各字段说明及扩展字段的方法
苹果业绩暴雷:iPhone卖不动了!库克感谢国人支持 要降价刺激销量?
《巫师3:狩猎》4.01版更新上线:光追性能更强 帧率又高了
美国新造车告急:造一辆亏23万 CEO深感抱歉
极氪009被吐槽像灵车、棺材 车主亲身评测:死人躺并不舒适
比亚迪又一大杀器 全新海鸥出街被拍:超个性涂装上身
快看:iPhone 12/13/14灵魂设计师离职 苹果直接取消工业设计总监职位
动态焦点:男孩为网游充值4万 家长控诉腾讯监控不力未尽义务:该不该退钱?
全球微动态丨国内油价今晚调整 或迎兔年“第一涨”:加满一箱预计多花8.5元
环球滚动:20个小猫身上笑死人的奇葩花纹:只有你想不到!
萌萌哒的兔子竟是“头号杀手”!澳大利亚曾研制病毒专杀兔兔
全球新资讯:澳大利亚搞丢一枚剧毒放射性胶囊 相关单位仅被罚款1000块:下不为例?
专家称年轻人工资低可能是能力不够引争议:企业点赞 打铁还应自身硬
世界今热点:触控体验碾压iPhone 14 Pro Max!一加Ace 2做到了
火箭弹电子版领取处>>(密码博主昵称 全部小写)
天天观点:Pandas分析泰坦尼克号生还比例
天天新资讯:图卷积的演变-从谱图卷积到GCN
.NET Core 3.1 通过 Web Service 读写 Salesforce 数据
【全球新要闻】打开它 游戏性能飙升46%!NVIDIA为啥不要呢?
每日资讯:麦当劳赢了:世界第一美食APP
即时看!地球最稀有矿石就一个标本!已知6000多种矿石就它特殊
【天天速看料】《流浪地球2》票房破30亿!下一部或两年后上映
最新消息:这两年大家都在吃瘪 结果微软闷声发大财了!全靠它
视焦点讯!Spring中Bean的生命周期
一名老了的普通程序员的未来在哪里
元宵节将至:北京周五晚高峰将达严重拥堵
焦点报道:334个小核心反超AMD!Intel下代至强“增肥”70%
出厂安卓13 三星Galaxy S23承诺四次大版本迭代:包你升级Android 17
世界热点!在欧洲大陆上奔跑的中国新能源车正越来越多!当地人慌了
当前热讯:编写干净代码的 9 条必须知道的规则
有钱玩家真多!越来越多Steam用户配置RTX 4090显卡:已超2万人
Python教程:OS与sys模块用法教程
世界看点:mybatis-plus代码生成器
女子误用八千元一斤茶叶煮茶叶蛋 以为过期:网友称这茶叶蛋真吃不起
天天观天下!专家:年轻人工资低是因为能力不够 很少有人反思这问题
全球微速讯:爱奇艺回应3台设备登录账号被封:改密码能解封 不用充值更贵会员
全球滚动:PS游戏启动失败?PS日本教你如何进行问题排查
剧版一集就被砍之后 DC电影版《沼泽怪物》物色导演
订单破5万!比亚迪腾势D9登35万以上新能源豪华MPV销量第一
环球微动态丨导演评价《狂飙》:可能是可以刻在自己墓碑上的一部戏