好友申请自动处理是私域运营的基础——新好友加过来,机器人自动验证、打招呼、打标签,不用人工一个个点。但自动处理不是"收到申请就通过",要解决验证规则、自动通过、欢迎语发送、标签分配四个问题。

一、好友申请监听——捕获申请事件

好友申请不是普通消息,是独立事件。监听的工程要点是事件捕获和申请信息提取。事件捕获——接口回调或轮询捕获好友申请事件。申请信息提取——提取申请人的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平台 提供,规则引擎和欢迎语逻辑在自建服务实现,接口字段以平台开发文档为准。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐