做企微社群运营的开发者都知道,内部群的机器人相对好做,但一旦涉及到“外部群”(即含有外部微信客户的群),权限和接口调用就会变得非常严格。如果想要在外部群实现“@机器人+关键词”触发的自动回复,走原生自建应用开发,光是处理企微的回调加解密和复杂的身份校验就足够让人头大。

今天这篇实战帖子,就教大家如何跳过繁琐的底层配置,直接跑通外部群的消息收发闭环。这里我们继续借助 星云API www.xingyapi.com 提供的标准化接口服务,将重点放在核心业务逻辑上。

一、 接收群消息:配置 Webhook 回调

要在外部群实现自动回复,第一步必须先“听到”群里发了什么。

我们需要在控制台配置一个接收消息的 Webhook 地址。配置完成后,当外部群内有任何人发消息、或者 @机器人 时,平台就会把解密好的 JSON 数据直接 POST 到你指定的服务器接口上。

大家可以在动手写代码前,先浏览一下星云开放文档,了解一下推送过来的字段格式。核心需要提取的参数主要是 chat_id(群ID)、FromUserName(发件人)以及 Content(具体消息内容)和 mentioned_list(被@的人员列表)。

二、 识别 @机器人 与 关键词提取

拿到纯净的 JSON 数据后,我们的业务代码只需要做两件简单的判断:

  1. 是否 @了机器人: 遍历回调数据中的 mentioned_list 字段,判断机器人的专属 ID 是否在其中。

  2. 提取业务关键词: 把用户消息内容中的 "@机器人" 剔除后,对剩下的文本进行关键词匹配(例如:“查快递”、“产品报价”)。

三、 完整代码实战:从监听到自动回复

下面直接上代码(基于 Python Flask)。这段代码实现了一个极简的社群闭环:监听外部群消息 -> 发现被 @ 且包含“报价”关键词 -> 自动往该外部群发送产品报价单。

Python

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

# 基础配置
API_KEY = "你的专属API_KEY"
SEND_URL = "https://api.xingyapi.com/v1/group/send_message"
BOT_USER_ID = "bot_123456" # 你的机器人标识ID

@app.route('/group_webhook', methods=['POST'])
def handle_group_msg():
    data = request.json
    
    # 1. 提取关键信息
    chat_id = data.get("chat_id")
    content = data.get("Content", "")
    mentioned_list = data.get("mentioned_list", [])
    sender_id = data.get("FromUserName")
    
    # 2. 业务逻辑:判断是否 @了机器人,且包含关键词“报价”
    if BOT_USER_ID in mentioned_list and "报价" in content:
        # 组装回复话术
        reply_text = f"@{sender_id} 您好,最新的产品报价单已更新,请查看:\n1. 基础版: 99元/月\n2. 专业版: 299元/月"
        
        # 3. 调用发送接口,推送回外部群
        payload = {
            "apikey": API_KEY,
            "chat_id": chat_id,
            "msgtype": "text",
            "text": {
                "content": reply_text
            }
        }
        requests.post(SEND_URL, json=payload)
        
    # 必须快速返回 200,避免平台重试推送
    return jsonify({"status": "success"})

if __name__ == '__main__':
    # 启动监听服务
    app.run(port=5000)

总结

在外部群做自动回复,最核心的难点就是打通“回调解析”和“主动发送”这两步。借助现成的接口封装,我们不需要去啃企微原生的复杂加密算法,只要专注于写 if-else 的业务逻辑,开发效率直线提升。

这种方式非常适合用来做客户群的智能客服、自助查单、常见问题自动答疑等高频交互场景。如果你在写代码联调时遇到鉴权或参数问题,可以直接访问星云API官网获取更完善的对接指引和技术支持。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐