基础接口地址(Base URLs): wechatapi.net
本系统通过分步式接口实现API登录,需依次完成二维码获取与登录状态检测。
请求方式: POST
接口路径: /login/getLoginQrCode
参数说明:
注意事项:
110000*北京市|120000*天津市|130000*河北省|140000*山西省|150000*内蒙古
210000*辽宁省|220000*吉林省|230000*黑龙江
310000*上海市|320000*江苏省|330000*浙江省|340000*安徽省|350000*福建省|360000*江西省|370000*山东省
410000*河南省|420000*湖北省|430000*湖南省|440000*广东省|450000*广西省|460000*海南省
500000*重庆市|510000*四川省|520000*贵州省|530000*云南省|540000*西藏自治区
610000*陕西省|620000*甘肃省|630000*青海省|640000*宁夏自治区|650000*新疆自治区
若当前列表未包含您的所在地区,可通过购买 SOCKS5 协议代理 IP,并填写至 proxyIp 参数中以实现访问。
{
"appId": "",
"proxyIp": "",
"regionId": "320000",
"type": "ipad",
"ttuid": "配合regionId/proxyIp使用,传ttuid程序生成的id"
}
| 名称 | 位置 | 类型 | 是否必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 前往API后台 → 访问控制 → 生成Token |
| 参数名 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| appId | string | 否 | 设备ID,首次为空,后续使用返回值 |
| proxyIp | string | 否 | 代理IP,格式:socks5://user:pass@123.2.2.2 |
| regionId | string | 是 | 地区编码 |
| type | string | 是 | 设备类型:ipad、mac(默认ipad) |
| ttuid | string | 否 | 本地网络ID,需结合regionId/proxyIp使用 |
{
"ret": 0,
"msg": "string",
"data": {
"qrData": "string",
"qrUrl": "string",
"appId": "string",
"qrImgBase64": "string",
"uuid": "string"
}
}
| 字段名 | 类型 | 是否必选 | 中文说明 | 描述 |
|---|---|---|---|---|
| ret | integer | true | 返回码 | 0表示成功 |
| msg | string | true | 消息提示 | 状态描述信息 |
| data | object | true | 响应数据 | 包含二维码相关信息 |
| qrData | string | true | 二维码内容 | 用于生成二维码的数据 |
| qrUrl | string | true | 二维码跳转链接 | 扫码后直接打开的URL |
| appId | string | true | 设备ID | 本次生成的设备标识 |
| qrImgBase64 | string | true | 二维码图像Base64 | 前端可直接展示该图片供用户扫码 |
| uuid | string | true | 二维码唯一标识 | 用于轮询检查登录状态 |
请求方式: POST
接口路径: /login/checkLogin
此步骤用于轮询检测用户是否已完成扫码及授权操作。系统现已支持:
特别提醒: iPad 类型仅支持 iOS 平台 App 扫码,请确保客户端兼容性。
支持多种验证方式,包括APP扫码验证与系统自动验证。开发者可根据需要在集成平台中自行接入APP滑块验证功能。具体操作流程可参考iPad或Mac登录相关说明。
调用接口以获取登录二维码后,需每隔5秒轮询一次该接口,用于判断用户是否已完成扫码及登录操作。二维码的有效时长为120秒,超时后需重新获取。
当返回数据中的logininfo字段包含信息时,表示登录成功;若无数据,则需持续轮询直至登录成功或确认失败为止。
对于新设备首次登录的情况,平台将在次日凌晨主动断开连接一次。用户需重新触发登录流程,并在调用接口时传入appId以重新获取二维码。成功登录后即可保持长期在线状态。
建议在登录成功后妥善保存appId与wxid之间的对应关系,后续接口调用将依赖此映射信息。
若出现“新设备验证”且未提供数字验证码:
若出现“新设备验证”并附带数字验证码:
若触发新设备验证:
对于已有自有平台App的开发者,支持代码级接入验证逻辑,无需引导用户下载第三方应用。
<Frame caption="Mac登录流程图,不清楚流程必看">
{
"appId": "",
"proxyIp": "",
"uuid": "",
"autoSliding": "true"
}
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| appId | body | string | 是 | 设备唯一标识ID |
| proxyIp | body | string | 否 | 代理IP地址,格式示例:socks5://username:password@123.2.2.2 |
| uuid | body | string | 是 | 从获取二维码接口返回的uuid值 |
| captchCode | body | string | 否 | 扫码后手机提示输入的数字验证码;若无提示可不传 |
| autoSliding | body | boolean | 是 | 是否启用自动验证:true/false。仅Mac有效。iPad登录时必须设为false |
{
"ret": 0,
"msg": "string",
"data": {
"uuid": "string",
"headImgUrl": "string",
"nickName": "string",
"expiredTime": 0,
"status": 0,
"loginInfo": {
"uin": 0,
"wxid": "string",
"nickName": "string",
"mobile": "string",
"alias": "string"
}
}
}
| 状态码 | 含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
| 字段名 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ret | integer | true | none | 返回码 | 状态标识,0表示成功 |
| msg | string | true | none | 消息提示 | 返回描述信息 |
| data | object | true | none | 响应数据 | 包含登录相关信息的对象 |
| uuid | string | true | none | 二维码UUID | 用于标识当前二维码会话 |
| headImgUrl | string | true | none | 头像地址 | 用户头像链接 |
| nickName | string | true | none | 昵称 | 用户显示名称 |
| expiredTime | integer | true | none | 过期时间 | 二维码失效时间戳 |
| status | integer | true | none | 登录状态 | 0:未扫码;1:已扫码未登录;2:登录成功;4:已扫码但取消登录 |
| loginInfo | object | true | none | 登录信息 | 登录成功后返回的具体数据 |
| uin | integer | true | none | 用户编号 | 系统内部用户标识 |
| wxid | string | true | none | 微信ID | 存在此值代表登录成功 |
| nickName | string | true | none | 昵称 | 用户昵称 |
| mobile | string | true | none | 手机号 | 绑定的手机号码 |
| alias | string | true | none | 微信号 | 用户的微信账号别名 |
POST /login/dialogLogin
调用此接口后,用户的手机端将弹出确认登录页面。用户点击“确认”后,需立即调用执行登录接口,并持续检测登录状态是否成功。
地区编码格式说明:地区ID在前,地区名称在后,以星号分隔,多项之间使用竖线分隔。例如:
110000*北京市|120000*天津市|130000*河北省|140000*山西省|150000*内蒙古
地区代码对照表如下:
若当前支持的 regionId 中未包含您所在的地区,可自行采购 socks5 协议代理 IP,并填写至 proxyIp 参数中。
使用本接口登录并非保证 100% 成功。当接口返回失败时,可通过扫码方式进行登录作为替代方案。
以下情况将导致无法通过该接口完成登录:
请求地址:/login
Body 请求参数示例:
{
"appId": "wx_wR_U4zPj2M_OTS3BCyoE4",
"proxyIp": "",
"regionId": "320000"
}
请求参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| ? appId | body | string | 是 | 设备ID |
| ? proxyIp | body | string | 是 | 代理IP,格式为:socks5://username:password@123.2.2.2 |
| ? regionId | body | string | 是 | 地区代码 |
成功响应示例(200 Response):
{
"ret": 0,
"msg": "string",
"data": {
"appId": "string",
"uuid": "string"
}
}
返回结果说明:
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
返回数据结构(状态码 200):
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ? ret | integer | true | none | 返回码 | 操作状态码 |
| ? msg | string | true | none | 提示信息 | 返回消息描述 |
| ? data | object | true | none | 响应数据 | 包含具体响应内容 |
| ?? appId | string | true | none | 设备ID | 设备唯一标识 |
| ?? uuid | string | true | none | 二维码uuid | 用于执行登录流程中的二维码识别 |
请求地址:/login/logout
说明:可仅填写 appId,或按照完整示例传参。
Body 请求参数示例:
{
"appId": "",
"proxyIp": "",
"regionId": "88"
}
请求参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| ? appId | body | string | 是 | 设备ID |
成功响应示例(200 Response):
{
"ret": 200,
"msg": "操作成功"
}
返回结果说明:
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
返回数据结构(状态码 200):
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ? ret | integer | true | none | 返回码 | 操作状态码 |
| ? msg | string | true | none | 提示信息 | 返回的消息描述 |
请求地址:/login/checkOnline
说明:响应中的 data 字段为 true 表示账号在线,false 则表示离线。
Body 请求参数示例:
{
"appId": "{{appid}}"
}
请求参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| ? appId | body | string | 是 | 设备ID |
成功响应示例(200 Response):
{
"ret": 200,
"msg": "操作成功",
"data": true
}
返回结果说明:
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
返回数据结构(状态码 200):
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ? ret | integer | true | none | 返回码 | 操作状态码 |
| ? msg | string | true | none | 提示信息 | 返回的消息描述 |
| ? data | boolean | true | none | 在线状态 | 布尔值,true为在线,false为离线 |
请求地址:/login/reconnection
适用场景:账号显示在线,但无法接收到回调通知时,可调用此接口尝试恢复连接。
Body 请求参数示例:
{
"appId": ""
}
请求参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| ? appId | body | string | 是 | 设备ID |
成功响应示例(200 Response):
{
"ret": 200,
"msg": "操作成功",
"data": true
}
返回结果说明:
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
返回数据结构(状态码 200):
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ? ret | integer | true | none | 返回码 | 操作状态码 |
| ? msg | string | true | none | 提示信息 | 返回的消息描述 |
| ? data | boolean | true | none | 重连结果 | 布尔值,true表示重连成功 |
通过 POST 请求可实现账号在不中断服务的情况下更换代理IP,达到在线无缝切换的效果。此外,也可选择退出后重新登录并传入新的代理IP信息以完成更新。
请求地址:
POST /login/setProxy
Body 参数结构:
{
"appId": "{{appid}}",
"proxyIp": "socks5://x:x@111.153.185.21:11332"
}
参数说明:
| 参数名称 | 位置 | 类型 | 是否必选 | 说明 |
|---|---|---|---|---|
| VideosApi-token | header | string | 是 | 认证令牌 |
| body | body | object | 否 | 请求体对象 |
| appId | body | string | 是 | 设备唯一标识ID |
| proxyIp | body | string | 是 | 代理IP地址,格式支持如 socks5://用户名:密码@IP:端口 |
{
"ret": 0,
"msg": "string"
}
| 状态码 | 含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 请求成功 | Inline |
| 字段名 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ret | integer | true | none | 返回码 | 操作结果标识,0 表示成功 |
| msg | string | true | none | 消息提示 | 返回的描述信息 |
扫码加好友,拉您进群



收藏
