QiWe开放平台 · 个人名片
API驱动企微 外部群 自动化,让开发更高效
对接通道:进入官方站点联系客服
团队定位:企微生态深度服务,专注 API+RPA 融合技术方案
快速实现企微外部群消息自动回复,支持关键词触发、话术自定义、多群适配,无需官方接口,适配客户咨询响应、群规引导等高频场景,轻量化落地且易维护。本文精简拆解核心逻辑、代码实现与实操要点。
一、核心实现逻辑
核心逻辑:Python封装QiWe API→配置回复规则(关键词+话术)→实时监听外部群消息→匹配回复规则→自动发送回复消息,全程非侵入式,支持多群、多规则同步生效。
-
规则配置:设置关键词与对应回复话术(支持多关键词对应同一话术、单关键词对应多话术随机发送);
-
消息监听:通过API联动RPA,实时捕获外部群新消息,过滤系统消息、自身回复消息,避免误触发;
-
自动回复:Python匹配消息与回复规则,匹配成功后,调用API模拟真人发送回复,控制发送频率规避风控。
二、核心回复规则与实操要点
-
规则配置:区分精准触发(如"群规"对应群规话术)与模糊触发(如"咨询"对应咨询引导话术),支持按群配置专属规则;
-
话术优化:同一关键词配置2-3套差异化话术,随机发送,降低同质化,规避企微风控;话术避免广告化、敏感词汇;
-
频率控制:单个群每分钟自动回复不超过3条,同一用户连续提问间隔5秒再回复,避免高频发送触发风控;
-
避误触发:过滤自身发送的回复消息、群内系统通知,仅响应群成员主动发送的消息,杜绝循环回复。
三、核心Python代码实现
python
import requests
import json
import time
import hashlib
import random
# 1. 鉴权参数与回复规则配置
QIWE_CONFIG = {
"appid": "xxx",
"token": "xxx",
"device_id": "xxx",
"reply_groups": ["客户咨询群1", "产品交流群2"], # 需自动回复的外部群
# 回复规则:key=关键词,value=回复话术列表(随机发送)
"reply_rules": {
"群规": ["群规说明:1. 禁止广告;2. 文明交流;3. 咨询请回复「咨询+需求」", "请遵守群规,禁止广告、辱骂,感谢配合~"],
"咨询": ["您好,请问有什么可以帮您?可详细说明需求哦", "收到您的咨询,稍后会有专人对接,也可直接回复需求细节"],
"价格": ["您好,不同套餐价格不同,回复「套餐」获取详细报价", "价格需根据您的需求定制,麻烦说明具体需求,为您报价"]
},
"self_nickname": "自动回复助手" # 自身昵称,用于过滤自身消息
}
# 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 send_reply_msg(group_name, content):
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_name": group_name,
"msg_type": "text",
"content": {"text": content}
}
try:
response = requests.post(
url="",
headers=headers,
data=json.dumps(params),
timeout=15
)
return response.json()
except Exception as e:
print(f"回复发送失败:{str(e)}")
return {"code": 500}
# 4. 外部群消息自动回复核心函数
def auto_reply_external_group():
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["reply_groups"]
}
try:
response = requests.post(
url="",
headers=headers,
data=json.dumps(params),
timeout=15
)
messages = response.json().get("data", [])
for msg in messages:
# 过滤自身消息和系统消息
if msg["sender"] == QIWE_CONFIG["self_nickname"] or "系统通知" in msg["sender"]:
continue
# 匹配回复规则
reply_content = None
for kw, texts in QIWE_CONFIG["reply_rules"].items():
if kw in msg["content"]:
reply_content = random.choice(texts)
break
# 发送回复
if reply_content:
send_reply_msg(msg["group_name"], reply_content)
time.sleep(5) # 控制回复频率
except Exception as e:
print(f"自动回复异常:{str(e)}")
time.sleep(1) # 控制监听频率
# 启动自动回复任务
if __name__ == "__main__":
print("外部群自动回复启动,开始监听消息...")
auto_reply_external_group()
四、避坑与总结
-
核心避坑:严格过滤自身消息,避免循环回复;控制回复频率,随机切换话术,规避企微风控;关键词避免敏感词,防止误触发;
-
优化技巧:回复规则封装为配置项,无需修改代码即可新增/修改关键词和话术;多群回复时,按群分组执行,提升稳定性;
-
总结:Python+QiWe API可轻量化实现外部群自动回复,无需官方接口,核心是做好回复规则配置与频率管控,快速落地客户响应、群规引导等需求,降低人工成本。