QiWe开放平台 · 个人名片
API驱动企微 外部群 自动化,让开发更高效
对接通道:进入官方站点联系客服
团队定位:企微生态深度服务,专注 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可轻量化实现外部群关键词监控,无需官方接口,核心是做好监听配置与关键词匹配,快速落地客户响应、群管控需求。