如何用代码控制企业微信外部群:开发你的第一个机器人

  QiWe开放平台 名片

  API驱动企微外部群自动化,让私域开发更高效便捷

  官方站点:https://www.qiweapi.com

  对接通道:访问官方站点,联系专属客服

背景

企业微信官方开放平台能力完善,但外部群的主动触达、部分群管场景,业务系统往往仍需要额外通道。RPA 连接器把已登录的企业微信账号封装成 HTTP API:你发请求,节点在客户端代为操作,结果以 JSON 返回。

「第一个机器人」不必上 AI 或 CRM。最小闭环:外部联系人或同事给你发消息 → 你的服务收到 Webhook → 自动回一句。跑通后再做群通知、成员管理、告警推送。

方案说明

最小机器人四步:

① 控制台注册,获取 API Token,扫码登录执行节点(guid)
② 调 /msg/sendText 向外部联系人或外部群发测试消息
③ 配置 Webhook,服务能收到 POST
④ 回调里调 sendText 把回复发回去

本平台接口统一走网关:method + params 结构,发送文本的 method 为 /msg/sendText。目标可以是外部联系人 ID,也可以是外部群的 roomId。

Webhook 需公网 HTTPS;回调几秒内返回 200,耗时逻辑放队列异步处理。

操作步骤

  1. 注册平台账号,在控制台复制 API Token 和网关地址。

  2. 实例管理里扫码登录企业微信,记录节点 guid,确认在线。

  3. 调「获取个人信息」接口,确认当前账号可用。

  4. 向已知的外部联系人或测试群发送一条短文本,客户端确认收到。

  5. 部署 /webhook/qw 接口,控制台填入 URL。

  6. 用外部号给该节点发私聊,打印 POST Body,确认收到事件。

  7. 在 handler 里调 sendText 回复「已收到:xxx」。

示例代码

发送文本

curl -X POST http://你的网关地址/qw/doApi \
  -H "X-API-TOKEN: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "/msg/sendText",
    "params": {
      "guid": "你的节点ID",
      "toid": "external_user_id或roomId",
      "content": "【测试】机器人已上线"
    }
  }'

最小 echo 机器人(Python)

import os
import requests
from flask import Flask, request
from threading import Thread

app = Flask(__name__)
GATEWAY = os.environ["QW_GATEWAY"]
TOKEN = os.environ["QW_API_TOKEN"]

def call_api(method: str, params: dict) -> dict:
    r = requests.post(
        f"{GATEWAY}/qw/doApi",
        json={"method": method, "params": params},
        headers={"X-API-TOKEN": TOKEN, "Content-Type": "application/json"},
        timeout=15,
    )
    return r.json()

def handle(event: dict):
    if event.get("msgType") != "text":
        return
    guid = event["guid"]
    sender = event.get("fromId")
    text = event.get("content", "")
    call_api("/msg/sendText", {
        "guid": guid,
        "toid": sender,
        "content": f"已收到:{text}",
    })

@app.post("/webhook/qw")
def webhook():
    event = request.get_json(force=True)
    Thread(target=handle, args=(event,), daemon=True).start()
    return {"code": 0}, 200

成功响应

{ "code": 0, "msg": "success" }

注意

  • 消息以执行节点对应的企业微信账号身份发出,多节点时别传错 guid。

  • 自己 sendText 发出的消息,通常不会回弹 Webhook;测收消息需外部账号发来。

  • 节点掉线后 API 失败,生产环境要监控在线状态。

  • 自动回复建议标明非人工,敏感业务留人工入口。

  • 非官方接入需自行评估合规与用户授权。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容