资讯动态

企业微信API接口如何实现群消息监听?从事件接收到业务响应完整流程

发布时间:2026/10/16 0:53:14 来源:尧图企业网站定制
群消息监听和单聊不同——群里人多消息杂不能每条都回要过滤、要防抖、要按群配置路由。我们做过一个群消息监听系统监听 50 多个客户群命中关键词自动触发业务动作。这篇讲从接收到响应的完整流程。底层用的是Eyun 平台开放的企微 API凭证在Eyun 平台首页开通Webhook 收群消息事件。接收群消息事件体群消息回调的conversationId是 roomId群 IDfromUin是发言者的 uincontent是消息内容。事件体还有atUinList被 的人列表、msgType消息类型。app.route(/wx-api/webhook/, methods[POST]) def webhook(): event request.headers.get(X-Eyun-Event) if event ! message: return ok payload request.json[data] conversation_id payload[conversationId] is_group payload.get(conversationType) group if not is_group: return ok # 只处理群消息 handle_group_message(payload) return ok群消息事件体字段在开发文档里有完整说明conversationType区分单聊和群聊。过滤三个条件筛消息群消息量大先过滤再处理三个条件过滤机器人自己的消息fromUin等于机器人 uin 的直接跳过避免自己触发自己形成死循环。过滤非目标群不是监听范围内的群直接跳过。群 ID 列表从配置读新增群不用改代码。过滤非目标消息只处理 机器人的消息或者命中关键词的消息。其他消息跳过避免刷屏。防抖30 秒内同一关键词只触发一次群里可能连续有人发同一个关键词不能触发多次。用 Redis 做防抖group:{roomId}:keyword:{kw}做 key30 秒内只触发一次。def should_trigger(room_id, keyword): key fgroup:{room_id}:kw:{keyword} if redis.setnx(key, 1): redis.expire(key, 30) return True return False防抖保证业务动作不被重复触发比如发优惠券链接30 秒内只发一次。业务响应命中即止关键词命中后触发对应业务动作动作执行完立即返回不继续匹配其他关键词。避免一条消息触发多个动作。常见动作报名 → 建报名记录回确认消息签到 → 标记签到回签到成功客服 → 转人工回转接提示动作调业务系统接口结果用 sendText 或 sendRichText 回发到群里 触发者。群消息监听的核心是克制群里不能刷屏过滤、防抖、命中即止三个机制保证机器人在群里存在感低、响应准。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑