个人微信二次开发:好友申请怎么按来源分类,自动发不同欢迎语? 欢迎语发得对不对取决于来源识别准不准。扫码、搜索手机号、群内添加、名片推荐四种来源的意图差别很大同一句话术等于白打招呼。这篇讲来源字段怎么取、话术怎么配、什么时候发。一、来源识别能拿到的字段和推断规则申请事件通常带 source 字段但粒度不一——有的平台只给扫码/搜索两级有的能细分到群聊添加。字段拿不到细粒度时用辅助信号推断附言里出现群名多半是群内添加附言带推荐人姓名多半是名片推荐附言为空且来源是搜索可能是搜手机号加的。推断要有兜底——推不出来的标未知来源走通用话术别硬猜。猜错了反而显得离谱。二、话术模板变量化而不是写死每条欢迎语做成模板变量至少包含昵称、来源、推荐人、群名。同一来源配两三套模板轮换避免所有新好友收到一模一样的开场。长度控制在 100 字内第一条消息太长会被直接忽略。结尾带一个明确的下一步动作——回复数字、点链接、等人工比单纯寒暄有效得多。三、发送时机延迟几秒更自然通过后立即发秒回的机器感太强。做法是延迟 5-15 秒随机发送同时错开不同好友的发送时间避免同一秒触发多条。发送失败要重试——首次失败隔 3 秒重试连续两次失败记入待补发队列别直接丢弃。来源分类对照来源识别信号话术要点兜底扫码sourceqr提活动/场景通用欢迎群内添加附言含群名提群名群规提从群里来名片推荐附言含姓名提推荐人提朋友介绍搜索添加sourcesearch提服务范围通用欢迎分类与欢迎语实现import time, random class WelcomeDispatcher: def __init__(self, api, store): self.api api self.store store self.templates { # 来源 - 模板列表 qr: [你好 {nick}欢迎参加{scene}回复 1 领资料, Hi {nick}扫码福利在这里回复 1 直接领], group: [{nick} 你好欢迎从「{group}」过来群规已私发, 你好 {nick}{group} 的伙伴先看这份新手指引], referral: [{nick} 你好{referrer} 推荐你来的已备注, 你好 {nick}感谢 {referrer} 介绍], unknown: [你好 {nick}请问想了解哪方面回复 1 人工], } def classify(self, event): src event.get(source, ) note event.get(message, ) or if src qr: return qr, {} if src search and not note: return unknown, {} # 辅助推断附言里找群名 group self.store.match_group_name(note) if group: return group, {group: group} referrer self.store.match_friend_name(note) if referrer: return referral, {referrer: referrer} return unknown, {} def on_accept(self, event): # 通过后延迟发送错开时间 kind, extra self.classify(event) tpl random.choice(self.templates[kind]) text tpl.format( nickevent.get(nickname, 朋友), sceneextra.get(scene, 本次活动), groupextra.get(group, 社群), referrerextra.get(referrer, 朋友), ) time.sleep(random.uniform(5, 15)) # 延迟更自然 self._send_with_retry(event[wxid], text, event) def _send_with_retry(self, wxid, text, event): for attempt in range(2): try: r self.api.post(/send, {wxid: wxid, content: text[:100]}).json() if r.get(code) 0: self.store.log_welcome(event[wxid], kindok) return except Exception: pass time.sleep(3) self.store.queue_retry(event[wxid], text)落地建议来源识别先用事件里的 source 字段字段粒度不够再用附言推断——群名、推荐人姓名都是可靠信号推不出来就标未知走通用话术。话术模板变量化同来源多套轮换长度压到 100 字内并带明确下一步动作。发送延迟 5-15 秒并随机错开失败两次进待补发队列。欢迎语只是开场真正决定留存的是后续跟进节奏。微信侧的好友申请事件与消息发送由Eyun这类个人微信API平台 提供来源推断与话术渲染在自建服务实现接口字段以平台开发文档为准。