突然来兴趣搞了个机器人发送的,挺有意思,也是首次接触python哈哈,下面将我的随笔分享给大家:
ps:直接在vsCode有提示,下载的哈哈(只要能运行python文件就可)
首先需要引入模块(包导入)
requests是用来发送企业微信路由使用的
datetime是用来捕获错误信息相关的(有没有无所谓)
import requests
from datetime import datetime
import requests
from datetime import datetime
发送方式那可太多了,但是这一次选的是图文类型
{
"msgtype": "news",
"news": {
"articles" : [
{
"title" : "大福利来临~~~",
"description" : "还在为汉化发愁吗?赶紧点开看看吧~~~Git中文化 ,Git GUI Here汉化",
"url" : "https://blog.csdn.net/weixin_46484674/article/details/116718274?spm=1001.2014.3001.5502",
"picurl" : "https://www.linuxidc.com/upload/2019_02/19022508488579.png"
}
]
}
}
参数说明:
参数 | 说明 | 是否必填 |
---|---|---|
msgtype | 消息类型,此时固定为news | 是 |
articles | 图文消息,一个图文消息支持1到8条图文 | 是 |
title | 标题,不超过128个字节,超过会自动截断 | 是 |
description | 描述,不超过512个字节,超过会自动截断 | 否 |
picurl | 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068455,小图150150。 | 否 |
url | 点击后跳转的链接 | 是 |
#机器人的webhook地址
url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXX'
#发送方式使用json
headers = {'Content-type':'application/json'}
#要发送给机器人的信息
data = {楼上的图文类型消息}
# post发送
r = requests.post(url,json=data)
#方便打印发送成功了还是失败了的原因(这个有没有也都可以哈,看你自己喽)
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"),"文本发送情况提示",r.text)
以上就是发送到机器人的几个步骤,也可以搞一个定时推送,定点发送这些信息。
最后发一个总得代码,data中数据 第一个是主屏幕,剩余两个都是小屏幕。(可以看下面效果图哈)
import requests
from datetime import datetime
url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXX'
headers = {'Content-type':'application/json'}
data = {
"msgtype": "news",
"news": {
"articles" : [
{
"title" : "大福利来临~~~",
"description" : "还在为汉化发愁吗?赶紧点开看看吧~~~Git中文化 ,Git GUI Here汉化",
"url" : "https://blog.csdn.net/weixin_46484674/article/details/116718274?spm=1001.2014.3001.5502",
"picurl" : "https://www.linuxidc.com/upload/2019_02/19022508488579.png"
},
{
"title" : " 最新发布!",
"description" : "关系我国发展全局的一场深刻变革",
"url" : "https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9106536165882713751%22%7D&n_type=1&p_from=3",
"picurl" : "http://xuandierbang.com/userfiles/images/phpdo10020190221230158.jpg"
},{
"title" : " 快来临福利吧!",
"description" : "测试中.....................",
"url" : "https://download.csdn.net/download/weixin_46484674/18627179",
"picurl" : "http://p6.qhimg.com/t0189373b7e0db2a1c1.jpg?size=1600x1280"
}
]
}
}
r = requests.post(url,json=data)
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"),"文本发送情况提示",r.text)
这是初版的,也可以网站爬取你想要的信息,那么自动推送的时候,内容也就可以动态切换啦~~~
C# 与 Python 一致,总得就是遵循数据格式,发送 Post 请求到你的机器人Webhook地址。
至于展示的样式,则需要你自己搭配一下。
public string WeChatPush(Model model)
{
var msg = string.Empty;
var url = "'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXX' ";
//这里采用的是富文本格式,可以自定义格式,根据
var data = new
{
msgtype = "markdown",
markdown = new
{
content = $"**ID为:{model.workOrdersId},调用审核接口,请及时关注**:\n" +
$">编号:{model.contractId}\n" +
$"ID:{model.workOrdersId}\n" +
$"未通过原因:{model.Reason}\n\n" +
// `` 这个符号里面可以存放代码code什么的
$" `{JsonConvert.SerializeObject(new { code = model.contractId, Id = model.workOrdersId, reason = model.Reason })}` "
}
};
//发送 Post 请求(这是自己封装的,可在网上找一个)
var res = WebClientUtility.PostModel<WeChat>(url, data);
msg = res?.errmsg; //成功会返回"ok",失败会返回错误信息
return msg;
}
public class WeChat
{
public int? errcode { get; set; }
public string errmsg { get; set; }
}
content = "# 带黄色的标题 警告提醒\n" +
"> ## 加粗信息,显示特别的信息\n" +
"> 黄色消息,一般用于警告\n" +
"> 绿色消息,一般用于安全\n" +
"> 灰色消息,一般用于忽略\n" +
"> 正常消息,一般用于普通文本\n" +
"<@abc> 用于@群里叫abc的\n"
首次接触,欢迎大家批评指正 ^ __ ^
官方文档更详细,什么上传文件、图片、卡片等等,大体的步骤和上面一样,具体的传参需要按照文档来~~~拜拜