360 Secure SkillHub
360 安全技能中心

push-server-py

提供 notify.py 脚本,将 JSON 参数经 HTTP 发送至 Push Server 服务,由该服务向企业微信用户推送 TEXT、MARKDOWN、TEXT_CARD、NEWS 消息,并返回 success/errCode 结果;需配置 API Key 与服务地址。

es-v
es-v
热度 50.66
最近更新 2026-05-11 17:30:43
分类:协作依赖:代码执行 / 第三方 API应用场景:API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add push-server-py
Metadata
name
push-server-py
description
Send notifications to WeCom (企业微信) users via OpenAPI push service(https://github.com/qingzhou-dev/push-server). Supports TEXT, MARKDOWN, TEXT_CARD, and NEWS message types.
metadata
{"openclaw":{"emoji":"📨","requires":{"bins":["python3"],"env":["QYWX_PUSH_API_KEY","QYWX_PUSH_URL"]},"primaryEnv":"QYWX_PUSH_API_KEY"}}

Push-Server WeCom Notification

Send notifications to WeCom (企业微信) users via the Push Server OpenAPI. This skill is designed for push notifications powered by Push Server. It can also be adapted for other webhook notification services by modifying notify.py .

Supports TEXT, MARKDOWN, TEXT_CARD, and NEWS message types.

Acknowledgements

The current version was collaboratively refined with AI assistance. Special thanks to:

  • OpenClaw — the agent framework that powers this skill
  • Qwen — AI coding assistant

Configuration

Two environment variables are required. Set them in openclaw.json:

"skills": {
  "entries": {
    "push-server-py": {
      "apiKey": "your-api-key-here",
      "env": {
        "QYWX_PUSH_URL": "https://push.wechat.com"
      }
    }
  }
}
  • apiKey → automatically injected as QYWX_PUSH_API_KEY (via primaryEnv)
  • env.QYWX_PUSH_URL → the base URL of the push service

Usage

python3 {baseDir}/notify.py '<JSON>'

Environment Variables

Variable Required Source Description
QYWX_PUSH_API_KEY yes skills.entries.*.apiKey API Key for authentication (X-API-Key)
QYWX_PUSH_URL yes skills.entries.*.env Base URL of the push service

Request Parameters

Param Type Required Default Description
toUser str yes - Target user(s), pipe-separated, e.g. `"user1
msgType str no TEXT TEXT / MARKDOWN / TEXT_CARD / NEWS
content str yes (TEXT / MARKDOWN) - Message content
title str TEXT_CARD only - Card title
description str TEXT_CARD only - Card description
url str TEXT_CARD only - Card link URL
btnText str TEXT_CARD only View Details Card button text
articles list[obj] NEWS only - List of article objects (see below)

Article Object (NEWS)

Param Type Required Description
title str yes Article title
url str yes Article link
description str no Article description
picUrl str no Article cover image

Examples

# Send TEXT notification
python3 {baseDir}/notify.py '{"toUser":"user1","content":"System is running normally.","msgType":"TEXT"}'

# Send MARKDOWN notification
python3 {baseDir}/notify.py '{
  "toUser": "user1|user2",
  "msgType": "MARKDOWN",
  "content": "## 🚨 Alert\n\n> CPU usage exceeds **90%**"
}'

# Send TEXT_CARD notification
python3 {baseDir}/notify.py '{
  "toUser": "user1|user2",
  "msgType": "TEXT_CARD",
  "title": "Weekly Report Ready",
  "description": "Click to view this week report.",
  "url": "https://example.com/reports/weekly",
  "btnText": "View Report"
}'

# Send NEWS notification
python3 {baseDir}/notify.py '{
  "toUser": "user1|user2",
  "msgType": "NEWS",
  "articles": [{
    "title": "March Monthly Report",
    "url": "https://example.com/reports/202503",
    "description": "March report is ready for review.",
    "picUrl": "https://example.com/reports/202503/cover.jpg"
  }]
}'

Message Type Reference

msgType Required Fields Description
TEXT content Plain text message
MARKDOWN content Markdown rich text
TEXT_CARD title, description, url Card message with button
NEWS articles News / articles

Success Response

{
  "success": true,
  "message": "ok",
  "errCode": 0
}

Error Response

{
  "success": false,
  "message": "Send failed: API error: invalid api key (errCode: 401)",
  "errCode": 401
}

Current Status

Fully functional.