python脚本实现接入企微机器人

企业微信中的群聊机器人在日常办公中无处不在,对提升工作效率、保证消息及时送达提供了重要的技术保障。例如:DevOps助手、JIRA、构建通知等;还常常使用在运维服务器中配合Prometheus监控体系及时发送告警信息等

文章目录

源码示例

例子:广播每日天气

python 复制代码
from doctest import debug_script
from pydoc import describe
from flask import jsonify
import requests
import simplejson

url = "http://t.weather.itboy.net/api/weather/city/101010100"  # 替换为你要请求的URL
robot_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX"

def alert(shidu, pm25, quality, wendu, ganmao, forecast):
    content = "## **<font color=\"green\">天气预报</font>** \n>**湿度:** <font color=\"warning\">{0}</font>\n>**PM2.5:** <font color=\"warning\">{1}</font>\n>**空气质量:** {2}\n>**温度:** {3}\n>**感冒指数:** {4}\n>**日期:** {5}日\n>**最高温度:** {6}\n>**最低温度:** {7}\n>**风向:** {8}\n>**天气状况:** {9}\n {10}"

    params = simplejson.dumps({
        "msgtype": "text",
        "text": {
                "content":content.format(shidu, pm25, quality, wendu, ganmao, forecast[0]['date'], forecast[0]['high'], forecast[0]['low'], forecast[0]['fx'], forecast[0]['type'], forecast[0]['notice']),
                "mentioned_list": ["@all"]
            }
        })


    return params


def webhook_url(params,url_key):
    headers = {"Content-type": "application/json"}
    """
    *****重要*****
    """
    url = "{}".format(url_key)
    r = requests.post(url,params,headers)






# 发送GET请求
response = requests.get(url)
# 获取响应结果
data = simplejson.loads(response.text)
webhook_url(alert(data['data']['shidu'],data['data']['pm25'],data['data']['quality'],data['data']['wendu'],data['data']['ganmao'], data['data']['forecast']),  robot_url)

Demo源码处理逻辑

步骤一:获取json格式的参数

这个参数来自于你要处理的上游业务系统,例如你要实现一个服务器告警机器人,则你需要接收到告警的相关信息;例如你要实现一个广播天气情况的机器人,则你需要接收到天气相关json回参。

步骤二:将json中的信息进行解析

封装到符合企业微信机器人可以接收的消息格式中

企业微信机器人可以接受的消息格式:详见机器人配置说明

常用的两种:文本类型、markdown类型

文本类型:

json 复制代码
{
    "msgtype": "text",
    "text": {
        "content": "广州今日天气:29度,大部分多云,降雨概率:60%",
        "mentioned_list":["wangqing","@all"],
        "mentioned_mobile_list":["13800001111","@all"]
    }
}


markdown类型:

json 复制代码
{
    "msgtype": "markdown",
    "markdown": {
        "content": "实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n
         >类型:<font color=\"comment\">用户反馈</font>
         >普通用户反馈:<font color=\"comment\">117例</font>
         >VIP用户反馈:<font color=\"comment\">15例</font>"
    }
}

使用区别:

markdown编辑内容模板更加丰富,可以突出重点;无法@人员

文本消息只能发送文本内容;支持@所有人/固定人员

(3)发送请求即可,发送成功后,企业微信机器人就会在群聊中发送自定义格式的消息内容。

相关推荐
火兮明兮7 分钟前
Python训练第四十五天
开发语言·python
zdy126357468811 分钟前
python43天
python·深度学习·机器学习
搏博1 小时前
将图形可视化工具的 Python 脚本打包为 Windows 应用程序
开发语言·windows·python·matplotlib·数据可视化
硅基茶水间1 小时前
「轻量级AI编程桌面软件」代码上下文一键搞定|已开源
python
Hockor2 小时前
写给前端的 Python 教程三(字符串驻留和小整数池)
前端·后端·python
网安小张2 小时前
解锁FastAPI与MongoDB聚合管道的性能奥秘
数据库·python·django
GeekAGI2 小时前
Python 定时器框架
python
KENYCHEN奉孝2 小时前
Pandas和Django的示例Demo
python·django·pandas
拾零吖2 小时前
《Pytorch深度学习实践》ch8-多分类
人工智能·pytorch·python
亿牛云爬虫专家2 小时前
NLP驱动网页数据分类与抽取实战
python·分类·爬虫代理·电商·代理ip·网页数据·www.goofish.com