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

企业微信机器人发送图文消息(基础版)

    • 使用工具
    • 进入代码模式
        • 1. 引入
        • 2. 发送方式
        • 3. 发送到企业微信机器人步骤
        • 3. 总代码
  • C#写法
        • 看下效果图:
        • 代码展示

使用工具

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

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

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

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

ps:创建完后会显示相关的Webhook地址,爬取消息也好,自己写的也好,自动推送到机器人需要这个url
python、C# 写企业微信机器人推送【图文消息】_第1张图片

进入代码模式

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)

效果图如下:
python、C# 写企业微信机器人推送【图文消息】_第2张图片

这是初版的,也可以网站爬取你想要的信息,那么自动推送的时候,内容也就可以动态切换啦~~~

C#写法

C# 与 Python 一致,总得就是遵循数据格式,发送 Post 请求到你的机器人Webhook地址。
至于展示的样式,则需要你自己搭配一下。

看下效果图:

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

代码展示
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; }
}

样式有很多,自己可以看着调整调整:
python、C# 写企业微信机器人推送【图文消息】_第4张图片

content = "# 带黄色的标题 警告提醒\n" +
           "> ## 加粗信息,显示特别的信息\n" +
           "> 黄色消息,一般用于警告\n" +
           "> 绿色消息,一般用于安全\n" +
           "> 灰色消息,一般用于忽略\n" +
           "> 正常消息,一般用于普通文本\n" +
           "<@abc> 用于@群里叫abc的\n"
              

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

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

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



你可能感兴趣的:(python,python,微信,开发语言)