第三方库,可脚本,可命令行。

目标

企业微信群机器人常用来作为通知工具,群发消息给群内成员,充当小助手的角色。但若按照官方 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