Python 操控企业微信群机器人
第三方库,可脚本,可命令行。
目标
企业微信群机器人常用来作为通知工具,群发消息给群内成员,充当小助手的角色。但若按照官方 API 文档来构建请求,也确实不太方便。本文通过 Python 第三方库来控制企业微信群机器人发送消息。
知识储备
- Python3
- Markdown
- YAML
快速开始
获取 Robot Key
添加机器人之后,可以获取到 webhook 地址,假设 webhook 是:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=633a31f6-7f9c-4bc4-97a0-0ec1eefa589
webhook 中的 633a31f6-7f9c-4bc4-97a0-0ec1eefa589
就是 Robot Key
安装第三方库
pip install WorkWeixinRobot
通过 Python 代码操控
发送纯文本消息
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 导入WorkWeixinRobot 库
from WorkWeixinRobot.work_weixin_robot import WWXRobot
# 初始化一个机器人实例
rbt = WWXRobot(key=ROBOT_KEY)
# 发送一个字符串作为文本消息
rbt.send_text(content='Hello, World')
发送 Markdown 格式消息
content = '\n'.join([
'# 企业微信群机器人',
'#### WorkWeixinRobot',
'[GitHub地址](https://github.com/seoktaehyeon/work-weixin-robot)'
])
rbt.send_markdown(content=content)
发送图片
rbt.send_image(local_file='local_image.jpg')
还支持直接发送一个在线的图片
url = 'http://xxxx.jpg'
rbt.send_image(remote_url=url)
发送图文
articles = [
{
'title': '企业微信群机器人',
'description': '如何配置企业微信群机器人?',
'url': 'https://work.weixin.qq.com/help?person_id=1&doc_id=13376',
'picurl': 'https://p.qpic.cn/pic_wework/3478722865/7b7dda774dab6fcebd7949815c85fb0f47681013914755be/0'
},
{
'title': 'Python 操控企业微信机器人',
'description': '不但可以 Python 脚本,还可以直接命令行执行',
'url': 'https://pypi.org/project/WorkWeixinRobot',
'picurl': 'https://www.python.org/static/img/python-logo.png'
}
]
rbt.send_news(articles=articles)
通过命令行操控
该第三方库还提供了命令行工具供用户执行,即使不会 Python 也能便捷的使用。
wwx-robot -k <robot_key> -t <msg_type> -d <msg_data> -f <msg_file_path>
对参数进行一下说明:
- -k Robot key
- -t 消息类型
- -d 消息数据内容
- -f 消息内容文件
类型说明:
消息类型 | 参数 | 文件类型 |
---|---|---|
文本 | text | txt |
markdown | markdown | md |
图片 | image | jpg, png |
图文 | news | yaml |
发送文本消息,可以直接指定字符串内容:
wwx-robot -k ${ROBOT_KEY} -t text -d "Hello world"
也可以指定文本文件:
echo "Hello, World" > hello.txt
wwx-robot -k ${ROBOT_KEY} -t text -f ./hello.txt
发送 markdown 格式的消息:
cat <<EOF > hello.md
## Weixin MSG
Hello, World
EOF
wwx-robot -k ${ROBOT_KEY} -t markdown -f ./hello.md
发送图片:
wwx-robot -k ${ROBOT_KEY} -t image -f ./picture.png
发送图文消息:
cat <<EOF > articles.yaml
- title: '企业微信群机器人使用手册'
description: '如何配置群机器人?'
url: 'https://work.weixin.qq.com/help?person_id=1&doc_id=13376'
picurl: 'https://p.qpic.cn/pic_wework/3478722865/7b7dda774dab6fcebd7949815c85fb0f47681013914755be/0'
- title: 'Python 操控企业微信机器人'
description: '不但可以 Python 脚本,还可以直接命令行执行'
url: 'https://pypi.org/project/WorkWeixinRobot'
picurl: 'https://www.python.org/static/img/python-logo.png'
EOF
wwx-robot -k ${ROBOT_KEY} -t news -f ./articles.yaml