Python开发:实现企微外部群消息关键词监控

QiWe开放平台 · 个人名片

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

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

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

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

快速实现企微外部群消息关键词监控,实时捕捉目标关键词、触发提醒,适配客户需求响应、群违规管控等高频场景,无需官方接口,轻量化落地。本文精简拆解核心逻辑、代码实现与实操要点。


一、核心实现逻辑(精简版)

核心逻辑:Python封装QiWe API→配置监控范围与关键词→实时监听外部群消息→关键词匹配→触发提醒,全程非侵入式,支持多群、多关键词同步监控。

  • 监听配置:获取QiWe API鉴权参数,指定需监控的外部群列表、目标关键词(支持多关键词、模糊匹配);

  • 消息捕获:通过API联动RPA,实时捕获外部群新消息,提取消息内容、发送人、发送时间等核心信息;

  • 关键词匹配:Python编写匹配逻辑,对捕获的消息进行关键词校验,匹配成功则触发预设提醒(如私发通知、日志标记)。


二、核心监控配置与实操要点

  • 监控范围管控:仅监控核心外部群,避免全量监控占用过多资源;支持手动添加/删除监控群,灵活调整;

  • 关键词配置:区分精准匹配(如"价格")与模糊匹配(如"价"),支持关键词分组,不同群可配置不同关键词;

  • 监听频率:监控间隔设为1秒,平衡实时性与系统负载,避免高频监听触发企微风控;

  • 提醒机制:匹配成功后,支持两种提醒方式(可选),一是向指定账号私发提醒,二是本地日志标记+控制台打印,避免打扰群内成员。


三、核心Python代码实现

python 复制代码
import requests
import json
import time
import hashlib

# 1. 鉴权参数配置
QIWE_CONFIG = {
    "appid": "xxx",
    "token": "xxx",
    "device_id": "xxx",
    "monitor_groups": ["客户群1", "合作群2"],  # 监控外部群列表
    "keywords": ["价格", "报价", "费用"],        # 监控关键词(精准匹配)
    "fuzzy_keywords": ["价", "费"]             # 模糊匹配关键词
}

# 2. 生成API请求签名
def generate_sign(appid, token):
    timestamp = str(int(time.time()))
    sign_str = f"{appid}{token}{timestamp}"
    sign = hashlib.md5(sign_str.encode("utf-8")).hexdigest()
    return timestamp, sign

# 3. 关键词匹配核心函数
def match_keyword(msg_content):
    # 精准匹配
    for kw in QIWE_CONFIG["keywords"]:
        if kw in msg_content:
            return True, "精准匹配", kw
    # 模糊匹配
    for fkw in QIWE_CONFIG["fuzzy_keywords"]:
        if fkw in msg_content:
            return True, "模糊匹配", fkw
    return False, "", ""

# 4. 外部群消息监控核心函数
def monitor_external_group_msg():
    while True:
        timestamp, sign = generate_sign(QIWE_CONFIG["appid"], QIWE_CONFIG["token"])
        headers = {
            "appid": QIWE_CONFIG["appid"],
            "token": QIWE_CONFIG["token"],
            "timestamp": timestamp,
            "sign": sign,
            "Content-Type": "application/json"
        }
        # 构造请求,获取监控群最新消息
        params = {
            "device_id": QIWE_CONFIG["device_id"],
            "group_list": QIWE_CONFIG["monitor_groups"]
        }
        try:
            response = requests.post(
                url="",
                headers=headers,
                data=json.dumps(params),
                timeout=15
            )
            messages = response.json().get("data", [])
            # 遍历消息,进行关键词匹配
            for msg in messages:
                match_flag, match_type, kw = match_keyword(msg["content"])
                if match_flag:
                    # 触发提醒(日志标记+控制台打印)
                    alert_info = f"【关键词监控提醒】{time.strftime('%Y-%m-%d %H:%M:%S')} - 群聊:{msg['group_name']} - 发送人:{msg['sender']} - {match_type}:{kw} - 消息:{msg['content']}"
                    print(alert_info)
                    # 写入日志(可选)
                    with open("./keyword_monitor.log", "a", encoding="utf-8") as f:
                        f.write(alert_info + "\n")
        except Exception as e:
            print(f"监控异常:{str(e)}")
        # 控制监听频率
        time.sleep(1)

# 启动监控任务
if __name__ == "__main__":
    print("外部群关键词监控启动,开始监听...")
    monitor_external_group_msg()

四、避坑与总结

  • 核心避坑:严控监听频率(1秒间隔最佳),避免高频操作触发企微风控;关键词避免敏感词汇,防止误触发;

  • 优化技巧:多群监控时采用分片监听,关键词匹配逻辑封装为独立函数,便于后续修改和扩展;

  • 总结:Python+QiWe API可轻量化实现外部群关键词监控,无需官方接口,核心是做好监听配置与关键词匹配,快速落地客户响应、群管控需求。

相关推荐
brucelee1861 小时前
Java 开发AWS Lambda 实战指南(SAM CLI + IntelliJ)
java·开发语言
码云数智-大飞1 小时前
Nginx负载均衡四大核心算法深度解析:原理、配置与选型实战
java
消失的旧时光-19431 小时前
第二十一课:系统是怎么一步步拆坏的?——单体到模块化实践(完整工程版)
java·spring boot·后端·架构
eWidget2 小时前
核心业务系统国产化:如何实现 Oracle 逻辑的“零损耗”平移与性能重构?
数据库·oracle·重构·kingbase·数据库平替用金仓·金仓数据库
NGC_66112 小时前
Mybatis处理流程
数据库·oracle·mybatis
Coder_Boy_2 小时前
Java高级_资深_架构岗 核心知识点(云原生)
java·云原生·架构
李斯啦果2 小时前
【MySQL】数据库增删查改
数据库·mysql
Coder_Boy_2 小时前
Java高级_资深_架构岗 核心面试知识点(AI整合+混合部署)
java·人工智能·spring boot·后端·面试·架构
此生只爱蛋2 小时前
【Redis】集群(Cluster)
数据库·redis