首页 / 博客 / API·多语言·接口

微信发起添加好友接口详解

分类:API·多语言·接口 · 标签:微信添加好友接口、个人微信API、微信二次开发

前言

在私域运营和客户获取场景中,如何批量、高效地添加微信好友是绕不开的核心诉求。手动一个个发申请不仅效率极低,还容易因频率过高触发风控。本文围绕"微信发起添加好友接口",从协议原理到参数细节、调用示例、频率策略和异常处理逐一拆解,帮助开发者快速落地自动化加好友流程。


微信加好友的底层协议原理

微信官方客户端并未开放公开的 REST API,所有自动化方案本质上都需要模拟客户端行为与微信服务器通信。目前主流的实现方式有三种:

  1. Hook 注入(PC 端):在 Windows 微信进程中注入 DLL,拦截内部函数调用。兼容性差、版本敏感,每次微信更新都需重新适配。
  2. Android 协议还原:逆向 APK 层面的网络协议,稳定性优于 Hook,但风控策略持续迭代,封号率较高。
  3. iPad 协议:复用微信 iPad 客户端的私有协议通道,设备标识独立、账号隔离,是目前稳定性和安全性最高的方案。

WechatApi 采用的正是 iPad 协议路线。每个接入设备拥有独立的 appId(设备 ID),服务端维护长连接,开发者只需通过 HTTP 调用即可驱动微信客户端执行加好友等操作,无需关心底层协议细节。

这种架构的优势在于:


接口鉴权与请求规范

WechatApi 的所有接口遵循统一的调用规范,理解这套规范是正确使用加好友接口的前提。

鉴权方式

鉴权信息通过 HTTP 请求头传递,字段名为 VideosApi-token,值为在 控制台 申请的 API Token。Token 与账号绑定,不同业务线建议使用不同子 Token,便于权限隔离和用量审计。

请求格式

返回格式

所有接口统一返回 JSON,结构如下:

json{
  "ret": 200,
  "msg": "操作成功",
  "data": {
    "requestId": "abc123xyz"
  }
}
字段类型说明
retint状态码,200 表示成功,非 200 表示业务或系统错误
msgstring状态描述,错误时包含具体原因
dataobject业务数据,不同接口结构不同,可为 null

调用前请确保:① Token 未过期;② appId 对应的设备处于在线状态(可通过"设备心跳"接口确认);③ 请求 IP 在白名单内(如已开启 IP 限制)。


发起添加好友接口的核心参数

加好友接口需要告诉服务端"加谁"以及"以什么理由加"。以下是主要参数说明。

必填参数

参数名类型说明
appIdstring设备 ID,标识发起操作的微信账号
searchValstring被搜索的值,支持微信号、手机号、QQ 号
addTypeint来源类型,参见下方枚举
verifyContentstring验证消息(打招呼内容),最长 50 字

选填参数

参数名类型说明
remarkstring好友备注,添加成功后自动设置
tagListarray标签列表,添加成功后自动打标
sourceIdstring来源 ID(如群 ID),部分 addType 必填

addType 枚举

addType 决定微信后台记录的"加好友来源",不同来源对应不同的权重和风控策略:

来源场景
1通过微信号搜索
2通过手机号搜索
3通过 QQ 号搜索
6通过群聊
14通过名片
17通过摇一摇

在实际私域获客场景中,最常用的是 addType=6(从群中添加)和 addType=1(直接搜索微信号)。从群中添加通常需要同时传入 sourceId(群 ID),这样来源显示更自然,通过率也略高于冷搜索。


完整调用示例

Python 示例

pythonimport requests

API_BASE = "https://api.wechatapi.net"   # 示意域名,请以文档为准
TOKEN = "your_videosapi_token_here"
APP_ID = "your_app_id_here"

def add_friend(search_val: str, verify_content: str, add_type: int = 1):
    url = f"{API_BASE}/wechat/addFriend"
    headers = {
        "Content-Type": "application/json",
        "VideosApi-token": TOKEN
    }
    payload = {
        "appId": APP_ID,
        "searchVal": search_val,
        "addType": add_type,
        "verifyContent": verify_content,
        "remark": "来自官网咨询",
        "tagList": ["潜在客户", "2026Q2"]
    }
    resp = requests.post(url, json=payload, headers=headers, timeout=15)
    result = resp.json()
    if result.get("ret") == 200:
        print(f"[OK] 已发送好友申请,requestId={result['data']['requestId']}")
    else:
        print(f"[ERR] {result.get('msg')}")
    return result

# 调用示例
add_friend("wxid_xxxxxxxx", "你好,我是XXX,想加您为好友!")

cURL 示例

bashcurl -X POST "https://api.wechatapi.net/wechat/addFriend" \
  -H "Content-Type: application/json" \
  -H "VideosApi-token: your_videosapi_token_here" \
  -d '{
    "appId": "your_app_id_here",
    "searchVal": "wxid_xxxxxxxx",
    "addType": 1,
    "verifyContent": "你好,我是XXX,希望加您好友,方便后续交流!",
    "remark": "官网来源",
    "tagList": ["意向客户"]
  }'

典型响应

json{
  "ret": 200,
  "msg": "操作成功",
  "data": {
    "requestId": "req_20260613_abc123",
    "searchResult": {
      "wxId": "wxid_xxxxxxxx",
      "nickname": "张三",
      "headImgUrl": "https://thirdwx.qlogo.cn/..."
    }
  }
}
注意ret=200 仅代表申请已发出,不代表对方已同意。好友关系变更需监听好友通知回调事件,或通过"获取好友列表"接口轮询确认。

批量加好友的频率策略与风控规避

这是实际落地中最容易踩坑的环节。微信对批量添加好友有严格的频率限制,超出阈值会触发账号功能限制甚至封号。以下是基于实践总结的安全策略:

频率控制建议

账号类型建议单日上限单次间隔
新注册账号(< 3 个月)5–10 人/天≥ 60 秒
普通活跃账号(3–12 个月)15–25 人/天≥ 30 秒
老号(> 1 年,高活跃)30–50 人/天≥ 20 秒

以上数据仅供参考,微信风控模型会动态调整,实际运营中建议从保守值起步、逐步观察。

代码层面的限速实现

pythonimport time
import random

def batch_add_friends(user_list: list, base_interval: int = 30):
    """
    批量添加好友,带随机抖动的限速
    :param user_list: [{"wxid": ..., "greeting": ...}, ...]
    :param base_interval: 基础间隔秒数
    """
    for i, user in enumerate(user_list):
        result = add_friend(user["wxid"], user["greeting"])
        print(f"[{i+1}/{len(user_list)}] {user['wxid']} -> {result.get('msg')}")
        
        # 随机抖动:base ± 30%,避免固定节拍被识别
        jitter = base_interval * (0.7 + random.random() * 0.6)
        time.sleep(jitter)

其他风控注意事项

  1. 验证消息要多样化:不要对所有目标发送完全相同的文本,建议准备 5–10 条模板轮换使用,或插入对方昵称/来源信息做个性化拼接。
  2. 来源场景要真实:如果 addType=6sourceId 必须是该账号真实加入的群,否则微信服务端校验失败会直接返回错误。
  3. 搜索前先查:在发起添加之前,可先调用"搜索用户"接口确认对方账号存在且未被注销,避免无效请求消耗额度。
  4. 配合账号养号:新设备接入 WechatApi 后,建议先进行一周左右的正常行为模拟(收发消息、朋友圈互动等),再开启批量加好友功能,降低风险。

加好友后的自动化跟进流程

添加好友只是私域运营的第一步,完整的自动化链路通常还包括:

① 申请发出 → 监听通过事件

通过 WebHook 或长轮询方式接收好友通过通知,触发后续动作。

② 通过后自动发欢迎消息

好友关系建立后立即发送欢迎语,这是转化率最高的时间窗口。结合 WechatApi 的发消息接口,可以实现秒级响应。

③ 打标签、分组

根据来源渠道(广告、群、名片等)自动打标,后续投放不同的内容序列。

④ 进入 SCRM 流程

如果你的场景涉及销售跟进,可以将好友数据同步到 微信 SCRM 系统,实现线索分配、跟进记录、商机管理的全流程数字化。

WechatApi 提供的 个人微信 API 覆盖了从加好友、发消息、管理群聊到朋友圈操作的完整能力集,可以作为上述自动化链路的统一底座,配合自研或第三方业务系统灵活集成。


常见错误码与排查思路

ret 值常见含义排查方向
200成功
400参数错误检查必填字段、类型和格式
401Token 无效或过期控制台重新生成 Token
403权限不足确认 Token 绑定的接口权限
404设备不存在appId 是否正确,设备是否已上线
410设备离线重新扫码登录或调用"唤醒"接口
429请求过于频繁降低调用频率,增加请求间隔
500服务端异常重试,或联系技术支持
600x微信业务错误msg 中有详细描述,常见如"对方不可被添加"

遇到 6xxx 系列的微信业务错误时,优先看 msg 字段,常见原因包括:对方关闭了通过微信号搜索、对方已将你加入黑名单、当日添加人数超出上限等。这类情况属于微信策略限制,与 API 调用本身无关。


进阶:结合微信机器人开发实现全自动获客

如果业务体量较大,手动维护目标列表效率依然有限。更完整的方案是将加好友接口整合进 微信机器人开发 框架:

  1. 线索采集层:从广告平台、落地页表单、活动报名等渠道自动收集目标手机号/微信号;
  2. 去重与校验层:过滤已添加、已拒绝或无效账号;
  3. 任务队列层:将加好友任务按优先级入队,控制并发和频率;
  4. 执行层:调用 WechatApi 加好友接口,异步等待结果回调;
  5. 跟进层:好友通过后触发欢迎流程,进入 SCRM 或 CRM 系统。

这套架构在教育、金融、电商等私域密集型行业已有大量落地案例。WechatApi 的 微信二次开发 文档提供了各语言的 SDK 和示例工程,可直接作为上述架构的执行层接入。


小结

微信发起添加好友接口并不复杂,难点在于风控策略的把握和业务流程的完整设计。本文的核心要点可以归纳为以下几条:

如需快速体验,可前往 WechatApi 官网 了解套餐详情,或访问 开发者文档 获取完整接口参考和 SDK 示例。

想动手试试?

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

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

相关产品页

🔗 个人微信API(产品页)🔗 微信二次开发(产品页)🔗 微信机器人开发(产品页)

相关文章

微信API接口返回失败/收不到消息?完整排查清单微信 API 怎么对接?Python 发出第一条消息实战Node.js 微信机器人开发教程(发消息 + 收回调)个人微信API能力清单:消息/好友/群/朋友圈接口一览
© 2025 WechatApi · 企业级微信智能机器人接入平台
官网价格帮助文档博客
苏ICP备2024128799号 · 苏ICP备2023038368号