首页 / 博客 / 机器人·功能实战

微信批量打招呼激活僵尸粉机器人

分类:机器人·功能实战 · 标签:微信批量打招呼、僵尸粉激活、微信机器人

前言

微信通讯录里沉睡着大量"僵尸粉"——添加后从未互动、长期不回复、甚至早已删除你的好友。对私域运营者来说,这批联系人既占资源又拉低打开率。批量打招呼是最直接的激活手段,但靠人工一条一条发既费时又容易出错。借助基于 iPad 协议的 WechatApi 个人微信API,开发者可以构建一套自动化批量打招呼机器人,精准触达沉默好友,把死粉变成活跃用户。


什么是僵尸粉,为什么要批量激活

"僵尸粉"在私域运营语境里通常指以下几类联系人:

  1. 互删型:对方已将你从好友列表删除,但你的通讯录里仍有其记录。给这类用户发消息会收到"已被对方删除"的系统提示。
  2. 沉默型:对方仍是好友,但超过 90 天未产生任何互动(点赞、回复、消息),朋友圈触达率极低。
  3. 封号型:对方微信账号已注销或被封禁,消息发出即失败。

对私域运营者来说,僵尸粉的危害是多维的:

因此,定期做一次"僵尸粉筛查+批量打招呼激活"是私域维护的必要动作。手工操作的瓶颈在于:一个账号少则几百、多则几千联系人,逐一发消息根本不现实。这正是微信机器人开发大显身手的场景。


批量打招呼机器人的整体架构

在动手写代码之前,先把整体流程梳理清楚,避免遗漏关键环节。

架构概览

┌─────────────────────┐
│  联系人列表拉取       │  ← 获取全量好友 + 上次互动时间
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐
│  僵尸粉筛选逻辑       │  ← 按时间/标签/备注过滤目标用户
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐
│  消息队列 & 频率控制  │  ← 避免短时间高频发送触发风控
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐
│  WechatApi HTTP发送  │  ← iPad协议底层,模拟真实设备行为
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐
│  结果记录 & 异常处理  │  ← 记录已删除/发送失败的账号
└─────────────────────┘

整个方案的核心是 WechatApi 提供的 微信iPad协议 接入能力。iPad 协议相较于网页版和 Hook 方案,稳定性和安全性更高,不依赖 PC 端微信安装,适合在服务器上长期运行。


僵尸粉筛选策略与参数设计

筛选逻辑直接决定打招呼的精准度。以下是几种常用的筛选维度和推荐参数:

筛选维度参数说明推荐阈值风险等级
最后互动时间距今多少天未有任何消息往来≥ 90 天
朋友圈互动最近是否点赞/评论过你的动态近 60 天无
好友标签是否带有"待激活""冷启动"等标签自定义
消息状态上次发消息是否被拒收/撤回任何拒收
账号注册时间账号创建时间是否异常久远仅供参考

重要原则:宁可少发,不要滥发。每个微信账号每天主动发消息的上限建议控制在 50~80 条,超过这个量级被风控的概率显著上升。如果僵尸粉数量庞大,建议分批、分天执行,而不是一次性推送。

在数据结构上,可以用一个简单的 JSON 文件维护目标用户池:

json{
  "batch_id": "batch_20241101_001",
  "account_id": "your_appId_here",
  "targets": [
    {
      "wxid": "wxid_xxxxxxxxxxxxxx",
      "nickname": "张三",
      "last_active_days": 120,
      "tag": "待激活",
      "priority": 1
    },
    {
      "wxid": "wxid_yyyyyyyyyyyyyy",
      "nickname": "李四",
      "last_active_days": 180,
      "tag": "沉默用户",
      "priority": 2
    }
  ],
  "message_template": "嗨 {nickname},好久不见!最近有什么新动态吗?",
  "daily_limit": 50,
  "interval_seconds": 90
}

其中 interval_seconds 是每条消息之间的等待时间,建议设置为 60~120 秒,并加入随机抖动(±20 秒),模拟人工发送节奏,降低机器特征。


调用 WechatApi 实现批量发送

WechatApi 采用标准 HTTP POST + JSON 的接入方式,鉴权通过请求头中的 VideosApi-token 传递,业务参数里必须包含 appId(即设备 ID,每台设备登录的微信账号对应一个唯一 appId)。

Python 示例:批量打招呼核心逻辑

pythonimport requests
import json
import time
import random

API_BASE = "https://api.wechatapi.net"   # 示意域名,请以控制台实际地址为准
TOKEN = "your_videos_api_token_here"      # 从控制台获取
APP_ID = "your_app_id_here"               # 登录设备的 appId

HEADERS = {
    "VideosApi-token": TOKEN,
    "Content-Type": "application/json"
}


def send_text_message(wxid: str, content: str) -> dict:
    """向指定好友发送文本消息"""
    payload = {
        "appId": APP_ID,
        "toWxid": wxid,
        "content": content
    }
    resp = requests.post(
        f"{API_BASE}/wechat/message/sendText",
        headers=HEADERS,
        json=payload,
        timeout=15
    )
    return resp.json()


def batch_greet(targets: list, template: str, daily_limit: int, interval: int):
    """
    批量打招呼主函数
    targets: 目标用户列表
    template: 消息模板,支持 {nickname} 占位符
    daily_limit: 当天发送上限
    interval: 基础间隔秒数
    """
    sent_count = 0
    failed = []
    deleted = []

    for user in targets:
        if sent_count >= daily_limit:
            print(f"[INFO] 已达到今日上限 {daily_limit} 条,停止发送")
            break

        wxid = user["wxid"]
        nickname = user.get("nickname", "朋友")
        message = template.replace("{nickname}", nickname)

        result = send_text_message(wxid, message)

        if result.get("ret") == 200:
            print(f"[OK] 发送给 {nickname}({wxid}) 成功")
            sent_count += 1
        elif result.get("ret") == 10001:
            # 示意错误码:对方已删除你
            print(f"[DELETED] {nickname}({wxid}) 已将你删除")
            deleted.append(wxid)
        else:
            print(f"[FAIL] {nickname}({wxid}): {result.get('msg')}")
            failed.append(wxid)

        # 随机间隔,模拟人工节奏
        sleep_time = interval + random.randint(-20, 20)
        time.sleep(max(sleep_time, 30))  # 最少等待 30 秒

    return {
        "sent": sent_count,
        "failed": failed,
        "deleted": deleted
    }


if __name__ == "__main__":
    with open("targets.json", "r", encoding="utf-8") as f:
        config = json.load(f)

    result = batch_greet(
        targets=config["targets"],
        template=config["message_template"],
        daily_limit=config["daily_limit"],
        interval=config["interval_seconds"]
    )
    print(f"\n[汇总] 发送成功: {result['sent']} | 失败: {len(result['failed'])} | 已删除: {len(result['deleted'])}")

标准 API 响应格式说明

WechatApi 所有接口均返回统一结构:

json{
  "ret": 200,
  "msg": "success",
  "data": {
    "msgId": "msg_12345678901234",
    "createTime": 1730419200
  }
}

消息模板设计与个性化技巧

僵尸粉长期沉默的原因各异,千篇一律的"好久不见"效果有限。以下是几类经过实践验证的打招呼话术方向:

1. 价值触发型(适合有实质内容可分享时)

"嗨 {nickname},最近整理了一批行业干货资料,想着你可能用得上,要不要发给你?"

这类话术先给价值再建立对话,用户感受到主动被关怀而非骚扰。

2. 状态询问型(适合有真实私域关系的沉默用户)

"{nickname} 最近在忙什么呢?好久没见动态了,都挺好的吧?"

语气轻松,不带商业目的,回复率更高。

3. 事件触发型(结合节日/新品/活动)

"快到年底了 {nickname},最近有个专属福利活动想和你分享,方便聊两句吗?"

有明确钩子,但要避免过于生硬的促销语气。

4. 回忆连接型(适合有历史互动的老用户)

"{nickname},上次和你聊 XX 的时候还没解决,后来搞定了吗?"

高度个性化,需要 CRM 数据支撑,效果最好。

在 WechatApi 的微信二次开发能力支持下,你还可以结合用户标签数据(从好友备注、CRM 系统同步)动态渲染模板,实现真正的"千人千面"打招呼,而不是机械地替换昵称。


风控规避与安全操作规范

批量操作微信账号是高风险行为,以下几条安全红线必须严格遵守:

发送频率控制

账号分级策略

账号类型日发送量建议备注
主力运营号(养号超 6 个月)≤ 80 条/天分 2~3 个时段发送
辅助账号(养号 3~6 个月)≤ 40 条/天间隔更长
新注册账号(< 3 个月)不建议批量操作极易触发限流

内容安全

异常处理

当 API 返回表示"对方已删除你"的错误码时,应立即将该 wxid 标记并从目标列表移除,不再重试。频繁向已删除你的用户发消息,是触发封号的高风险行为。


发送结果统计与后续跟进

批量打招呼只是第一步,真正的激活效果需要通过后续的数据分析来衡量。建议在任务结束后至少追踪以下指标:

用 bash 脚本快速统计发送日志是常见做法:

bash#!/bin/bash
LOG_FILE="./greet_log_$(date +%Y%m%d).jsonl"

echo "=== 今日打招呼任务统计 ==="
echo "总发送条数: $(grep -c '"ret":200' $LOG_FILE)"
echo "发送失败:   $(grep -c '"ret":5' $LOG_FILE)"
echo "已被删除:   $(grep -c '"ret":10001' $LOG_FILE)"
echo "==========================="

对于回复的用户,建议在 CRM 系统中打上"已激活"标签,并在 7 天内安排一次后续跟进,把短暂的对话转化为持续的关系。


小结

批量打招呼激活僵尸粉的本质,是用自动化手段解决私域运营中人力密集型的重复工作。整个方案的关键点可以归纳为三条:

一、精准筛选优先于数量。宁可打招呼的用户少一些,也要保证目标足够精准——沉默时间长、曾有真实互动历史的用户,才是值得重点激活的对象。

二、频率控制是账号安全的底线。基于 WechatApi 的 iPad 协议接入方式,底层已经尽量模拟真实设备行为,但上层的发送节奏控制同样不可忽视。合理的间隔和随机抖动,是长期稳定运行的保障。

三、内容个性化决定激活效果。机械的群发只会让用户感到厌烦,结合 WechatApi 提供的标签、备注、历史消息等数据能力,为不同用户定制不同的打招呼话术,才能把僵尸粉真正变成活跃私域成员。

如果你在搭建更完整的私域自动化体系,包括自动回复、智能客服、群运营等场景,WechatApi 的微信二次开发文档和 开发者控制台 提供了完整的接口支持,可以从单个打招呼功能扩展到全链路私域运营自动化。

想动手试试?

WechatApi 提供扫码登录、消息收发、好友与群管理等 REST 接口,注册后几分钟跑通。

立即免费注册查看开发文档

相关产品页

🔗 个人微信API(产品页)🔗 微信iPad协议(产品页)🔗 微信二次开发(产品页)

相关文章

30 分钟做一个微信自动回复机器人(完整实战)微信机器人接入 GPT,实现智能自动回复微信群管理机器人开发实战:自动迎新、答疑、踢人微信客服机器人怎么做?7×24自动应答+转人工方案
© 2025 WechatApi · 企业级微信智能机器人接入平台
官网价格帮助文档博客
苏ICP备2024128799号 · 苏ICP备2023038368号