Python 实战:实现外部群“入群欢迎语”自动推送

QiWe开放平台 · 个人名片

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

官方站点:www.qiweapi.com

对接通道:进入官方站点联系客服

团队定位:企微生态深度服务,专注 API+RPA 融合技术方案


在企业微信的私域运营中,及时响应进群动作非常重要。通过监听回调接口中的成员变更事件,我们可以实现比官方更灵活的欢迎逻辑。

1. 核心接口与字段解析

根据文档,我们需要关注两个环节:回调触发和消息发送。

回调事件字段(MemberChange 场景):

  • w_id: 当前登录的机器人账号 ID。
  • room_id: 发生变动的外部群 ID。
  • content: 消息内容(在成员入群事件中,这里通常包含入群者的信息)。
  • type: 消息类型。

发送消息接口字段(SendTextMsg):

  • w_id: 机器人账号 ID。
  • room_id: 接收消息的群 ID。
  • content: 消息文本内容。
  • at_list: 数组格式,用于 @ 指定成员。

2. Python 代码实现

我们将逻辑分为"识别入群"和"执行回复"两步。

Python 复制代码
import requests
import json

# 配置接口基础信息
API_BASE_URL = "http://127.0.0.1:8888" # 替换为你实际的服务地址
AUTH_TOKEN = "your_token"

def send_welcome_message(w_id, room_id, nickname):
    """
    执行发送欢迎语的操作
    """
    url = f"{API_BASE_URL}/api/SendTextMsg"
    
    # 构造文档要求的 Payload
    payload = {
        "w_id": w_id,
        "room_id": room_id,
        "content": f"欢迎新同学 @{nickname} 加入本群!\n进群请先查看群公告。",
        "at_list": [] # 如果有成员的wxid,可以填入实现强提醒
    }
    
    headers = {
        "Authorization": f"Bearer {AUTH_TOKEN}",
        "Content-Type": "application/json"
    }
    
    response = requests.post(url, headers=headers, data=json.dumps(payload))
    return response.json()

# 模拟接收回调数据 (Callback Data)
def on_receive_callback(callback_data):
    # 严格匹配文档字段
    w_id = callback_data.get("w_id")
    room_id = callback_data.get("room_id")
    msg_type = callback_data.get("type")
    content = callback_data.get("content")

    # 逻辑:判断是否为群成员增加事件 (假设文档中该事件 type 为 10002)
    # 注意:实际 type 值请对照文档"消息类型定义"章节
    if msg_type == 10002: 
        print(f"检测到外部群 {room_id} 有新成员加入")
        
        # 从 content 中解析出新成员昵称 (根据文档实际返回格式处理)
        # 假设 content 内容为 "张三 顺着二维码加入了群聊"
        new_member_name = content.split(" ")[0] 
        
        # 调用发送接口
        result = send_welcome_message(w_id, room_id, new_member_name)
        print(f"欢迎语发送结果: {result}")

# 模拟一条入群回调数据
mock_data = {
    "w_id": "robot_01",
    "room_id": "2398472398@chatroom",
    "type": 10002,
    "content": "王小二 加入了群聊"
}

on_receive_callback(mock_data)

3. 技术要点拆解

  • w_id 的重要性 :在多账号矩阵(同时登录多个企业微信)时,必须指定 w_id,否则服务器不知道由哪个账号去发这条消息。
  • room_id 的唯一性 :外部群的 room_id 是持久化的,你可以将其存在数据库中,针对不同的群(如:技术交流群 vs 客户服务群)设置不同的欢迎语模板。
  • 字符串解析 :由于 RPA 接口返回的入群通知通常是系统文本,Python 开发者需要根据 content 里的固定格式(如"加入了群聊")用正则表达式或 split 函数提取出新人的昵称。

4. 常见问题:为什么发送失败?

如果你完全按照 doc.qiweapi.com 传参但失败了,请检查以下几点:

  1. JSON 格式 :确保 at_list 即使为空也要传空数组 []
  2. 账号状态 :检查该 w_id 对应的账号是否仍在群里。
  3. 转义字符content 里的换行请使用 \n

总结

通过严格对应文档字段,Python 脚本可以精准控制每一个机器人账号的行为。这种"监听+自动回复"的组合,是构建私域 SOP 的基础。

相关推荐
Resistance丶未来1 小时前
GPT-5.5 深度评测:性能边界与实战价值全解析
gpt·大模型·api·claude·gemini·api key·gpt5.5
万邦科技Lafite5 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台
chaofan98010 小时前
突破大模型落地瓶颈:Claude 4.7 与 GPT-5.5 长上下文工程实测
数据库·人工智能·python·gpt·自动化·php·api
ai大模型中转api测评1 天前
OpenAI再次定义生产力!GPT-image-2发布:当AI绘图学会思考
人工智能·gpt·自动化·api
宁波阿成1 天前
在ubuntu22.04源码级安装sub2api
linux·运维·ubuntu·ai·api·token·中转站
147API1 天前
Claude 工具调用场景梳理:从 MCP 到企业落地链路
人工智能·架构·api·claude
chaofan9801 天前
OpenAI重塑设计生产力!GPT-image-2发布:从像素拼接到代理推理的范式跃迁
人工智能·gpt·深度学习·计算机视觉·api
向量引擎2 天前
向量引擎的新时代:从OpenClaw、Hermes到GPT Image 2与龙虾(Lobster)模型的深度对比与应用
人工智能·gpt·aigc·api·ai编程·key·api调用
深蓝电商API2 天前
淘宝 API 数据缓存策略:Redis 多级缓存 + 本地缓存的混合架构
接口·api·淘宝api
HeeRiver2 天前
VSCode调用deepseek-v4-pro/flash api的方法
ide·vscode·api·deepseek-v4