个人微信接口调用案例:如何实现微信好友申请自动处理?
好友申请自动处理是私域运营的基础——新好友加过来,机器人自动验证、打招呼、打标签,不用人工一个个点。但自动处理不是"收到申请就通过",要解决验证规则、自动通过、欢迎语发送、标签分配四个问题。
一、好友申请监听——捕获申请事件
好友申请不是普通消息,是独立事件。监听的工程要点是事件捕获和申请信息提取。事件捕获——接口回调或轮询捕获好友申请事件。申请信息提取——提取申请人的wxid、昵称、申请来源、验证信息。
监听的工程实现是事件监听器。监听器——接收好友申请事件,提取关键信息。监听的坑是重复事件——同一个申请可能重复推送,要按申请ID去重。好友申请监听和事件捕获的接口在 Eyun 开放平台 的开发文档中有对应说明。
二、验证规则引擎——按规则决定是否通过
不是所有申请都自动通过,要按规则判断。验证规则的工程要点是来源判断、验证信息匹配、黑白名单。来源判断——扫码加的通过,搜索加的看验证信息。验证信息匹配——验证信息含特定关键词(如"朋友推荐")通过。黑白名单——黑名单直接拒绝,白名单直接通过。
验证规则的工程实现是规则引擎。规则引擎——按优先级执行规则,匹配就执行对应动作。规则的坑是冲突——多条规则匹配同一个申请,按优先级取第一个。
三、自动通过与欢迎语——通过后立即触达
决定通过后,要自动通过加发送欢迎语。自动通过的工程要点是通过接口调用和频率控制。通过接口——调用好友申请通过接口。频率控制——短时间内通过太多会触发限制,要控制通过速度。
欢迎语的工程要点是个性化和发送时机。个性化——按申请来源或标签发不同欢迎语。发送时机——通过后立即发,或延迟几分钟发显得更自然。自动通过和欢迎语发送的接口在 Eyun 开放平台 的开发文档中有对应能力。
好友申请处理流程
|
步骤 |
核心动作 |
工程要点 |
常见坑 |
|---|---|---|---|
|
监听 |
捕获申请事件 |
按ID去重 |
重复事件 |
|
验证 |
规则引擎判断 |
优先级冲突 |
多规则匹配 |
|
通过 |
自动通过接口 |
频率控制 |
触发限制 |
|
欢迎 |
发送欢迎语 |
个性化+时机 |
发送失败 |
好友申请自动处理实现
class FriendRequestHandler:
def __init__(self):
self.processed_ids = set()
self.rules = [
self.check_blacklist, # 黑名单优先
self.check_whitelist, # 白名单其次
self.check_source, # 来源判断
self.check_message, # 验证信息匹配
]
def on_friend_request(self, event):
if event.req_id in self.processed_ids:
return # 去重
self.processed_ids.add(event.req_id)
# 规则引擎:按优先级执行
action = "reject" # 默认拒绝
for rule in self.rules:
result = rule(event)
if result:
action = result
break
if action == "accept":
self.accept_request(event)
self.send_welcome(event)
else:
self.reject_request(event)
def check_blacklist(self, event):
if event.wxid in self.blacklist:
return "reject"
return None
def check_whitelist(self, event):
if event.wxid in self.whitelist:
return "accept"
return None
def check_source(self, event):
if event.source == "qrcode": # 扫码直接通过
return "accept"
return None
def check_message(self, event):
keywords = ["朋友推荐", "合作", "咨询"]
for kw in keywords:
if kw in event.message:
return "accept"
return None
def accept_request(self, event):
time.sleep(1) # 频率控制
requests.post(f"{API}/friend/accept", json={
"req_id": event.req_id
})
def send_welcome(self, event):
time.sleep(3) # 延迟发送更自然
welcome = self.get_welcome(event)
requests.post(f"{API}/send", json={
"wxid": event.wxid, "content": welcome
})
def get_welcome(self, event):
if event.source == "qrcode":
return "欢迎加入!请回复【1】获取新人指南"
return "你好,请问有什么可以帮你的?"
落地建议
监听要按申请ID去重——重复推送的同一申请不重复处理。验证规则要有优先级——黑名单最先,白名单其次,来源和验证信息最后。自动通过要控制频率——短时间内通过太多会触发限制。欢迎语要个性化——按来源发不同内容,延迟发送更自然。微信侧的好友申请监听和通过接口由 Eyun 这类个人微信API平台 提供,规则引擎和欢迎语逻辑在自建服务实现,接口字段以平台开发文档为准。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)