python、C# 写企业微信机器人推送【图文消息】

使用工具

突然来兴趣搞了个机器人发送的,挺有意思,也是首次接触python哈哈,下面将我的随笔分享给大家:

  1. 使用工具 :VsCode
  2. 语言 :python (why?没接触过哈哈哈哈)
  3. 环境准备 打开vsCode选择python语言,我安装了个Python 3.9.(64-bit)

ps:直接在vsCode有提示,下载的哈哈(只要能运行python文件就可)

  1. 机器人准备 在企业微信群右上角三个点(…)—>添加群机器人—>跟着流程走就好

ps:创建完后会显示相关的Webhook地址,爬取消息也好,自己写的也好,自动推送到机器人需要这个url
这个就是创建完机器人后的界面

进入代码模式

1. 引入

首先需要引入模块(包导入)
requests是用来发送企业微信路由使用的
datetime是用来捕获错误信息相关的(有没有无所谓)

import requests
from datetime import datetime
import requests
from datetime import datetime
2. 发送方式

发送方式那可太多了,但是这一次选的是图文类型

{ 
    "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点击后跳转的链接
3. 发送到企业微信机器人步骤
#机器人的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)
3. 总代码

以上就是发送到机器人的几个步骤,也可以搞一个定时推送,定点发送这些信息。
最后发一个总得代码,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#写法

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为:<font color=\"warning\">{model.workOrdersId}</font>,调用审核接口,请及时关注**:\n" +
             $">编号:<font color=\"comment\">{model.contractId}</font>\n" +
             $"ID:<font color=\"comment\">{model.workOrdersId}</font>\n" +
             $"未通过原因:<font color=\"comment\">{model.Reason}</font>\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 = "# <font color=\"warning\">带黄色的标题</font> 警告提醒\n" +
           "> ## 加粗信息,显示特别的信息\n" +
           "> <font color=\"warning\">黄色</font>消息,一般用于警告\n" +
           "> <font color=\"info\">绿色</font>消息,一般用于安全\n" +
           "> <font color=\"comment\">灰色</font>消息,一般用于忽略\n" +
           "> 正常消息,一般用于普通文本\n" +
           "<@abc> 用于@群里叫abc的\n"
              

首次接触,欢迎大家批评指正 ^ __ ^

官方文档更详细,什么上传文件、图片、卡片等等,大体的步骤和上面一样,具体的传参需要按照文档来~~~拜拜

机器人大作战



  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气小羊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值