Files
workphone-sdk/docs/api/openapi.yaml

914 lines
22 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.3
info:
title: 工作手机SDK - 微信控制API
description: |
通过Frida无感控制微信的完整REST API服务。
## 认证
所有接口需要在Header中携带 `X-API-Key: workphone-sdk-2026`
## 基础URL
`http://192.168.110.80:8899`手机IP或 `http://localhost:8899`(本机)
## 功能模块
- 系统管理(连接/重连/截图/事件)
- 账号信息
- 联系人管理4991人
- 消息发送/群发/读取
- 朋友圈(读取/发布/评论)
- 视频号Finder
- 收藏
- 红包/钱包/账单
- 文件/图片/视频/语音
- 群组管理(公告/名称/备注/踢人/解散)
- 标签管理36个
- 小程序
- 高级SQL查询
version: "5.0.0"
contact:
name: 工作手机SDK
servers:
- url: http://192.168.110.80:8899
description: 手机本地服务
- url: http://localhost:8899
description: 本机调试
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
schemas:
Success:
type: object
properties:
success:
type: boolean
timestamp:
type: string
Error:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
timestamp:
type: string
paths:
# ==================== 系统 ====================
/health:
get:
tags: [系统]
summary: 健康检查
security: []
responses:
'200':
description: 服务状态
/docs:
get:
tags: [系统]
summary: API文档JSON格式
security: []
responses:
'200':
description: 所有接口列表
/api/v1/system/info:
get:
tags: [系统]
summary: 获取系统信息
description: 返回Frida连接状态、DB路径、DB数量等
responses:
'200':
description: 系统信息
/api/v1/system/connect:
post:
tags: [系统]
summary: 连接Frida
responses:
'200':
description: 连接结果
/api/v1/system/reconnect:
post:
tags: [系统]
summary: 重新连接Frida微信重启后使用
responses:
'200':
description: 重连结果
/api/v1/system/events:
get:
tags: [系统]
summary: 获取实时事件流
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 事件列表
/api/v1/system/screenshot:
post:
tags: [系统]
summary: 截取手机屏幕
requestBody:
content:
application/json:
schema:
type: object
properties:
path:
type: string
example: /sdcard/screenshot.png
responses:
'200':
description: 截图结果
# ==================== 账号 ====================
/api/v1/account/info:
get:
tags: [账号]
summary: 获取微信账号信息
description: 返回昵称、微信号、手机号、头像等
responses:
'200':
description: 账号信息
content:
application/json:
example:
success: true
account:
nickname: "游条姐-游戏教学辅助看我朋友圈"
wxid: "wxid_5g37snchpv8e22"
mobile: "Lytiao1"
alias: ""
# ==================== 联系人 ====================
/api/v1/contacts:
get:
tags: [联系人]
summary: 获取联系人列表
description: 支持分页总计4991人
parameters:
- name: limit
in: query
schema:
type: integer
default: 200
- name: offset
in: query
schema:
type: integer
default: 0
- name: keyword
in: query
schema:
type: string
description: 搜索关键词(昵称/备注)
responses:
'200':
description: 联系人列表
content:
application/json:
example:
success: true
count: 200
contacts:
- username: "wxid_abc123"
nickname: "张三"
conRemark: "客户-张三"
type: "3"
/api/v1/contacts/count:
get:
tags: [联系人]
summary: 获取联系人总数
responses:
'200':
description: 数量统计
content:
application/json:
example:
success: true
type3_friends: 4991
total_rcontact: 8076
groups: 50
/api/v1/contacts/{wxid}:
get:
tags: [联系人]
summary: 获取联系人详情
parameters:
- name: wxid
in: path
required: true
schema:
type: string
responses:
'200':
description: 联系人详情
/api/v1/contacts/{wxid}/remark:
put:
tags: [联系人]
summary: 设置好友备注
parameters:
- name: wxid
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
remark:
type: string
example: "客户-李四"
responses:
'200':
description: 设置结果
/api/v1/contacts/add:
post:
tags: [联系人]
summary: 添加好友(打开搜索界面)
requestBody:
content:
application/json:
schema:
type: object
properties:
wxid:
type: string
example: "wxid_abc123"
responses:
'200':
description: 操作结果
/api/v1/contacts/search:
get:
tags: [联系人]
summary: 搜索联系人
parameters:
- name: keyword
in: query
required: true
schema:
type: string
responses:
'200':
description: 搜索结果
# ==================== 消息 ====================
/api/v1/messages/send:
post:
tags: [消息]
summary: 发送消息
description: 通过WCDB直接写入无感发送
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [to_id, content]
properties:
to_id:
type: string
description: 接收方wxid或群ID
example: "filehelper"
content:
type: string
example: "你好!"
type:
type: integer
default: 1
description: 消息类型1=文字)
responses:
'200':
description: 发送结果
content:
application/json:
example:
success: true
message_id: "1779108141283"
method: "wcdb_insert"
to_id: "filehelper"
/api/v1/messages/mass:
post:
tags: [消息]
summary: 群发消息
description: 向多个联系人批量发送消息
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [targets, content]
properties:
targets:
type: array
items:
type: string
example: ["wxid_abc", "wxid_def", "wxid_ghi"]
content:
type: string
example: "群发消息内容"
responses:
'200':
description: 群发结果
content:
application/json:
example:
success: true
total: 3
success_count: 3
/api/v1/messages:
get:
tags: [消息]
summary: 获取消息记录
parameters:
- name: talker
in: query
schema:
type: string
description: 联系人wxid不传则返回所有
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 消息列表
/api/v1/messages/search:
get:
tags: [消息]
summary: 搜索消息内容
parameters:
- name: keyword
in: query
required: true
schema:
type: string
responses:
'200':
description: 搜索结果
/api/v1/conversations:
get:
tags: [消息]
summary: 获取最近会话列表
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: 会话列表
# ==================== 朋友圈 ====================
/api/v1/moments:
get:
tags: [朋友圈]
summary: 获取朋友圈列表
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
- name: offset
in: query
schema:
type: integer
default: 0
responses:
'200':
description: 朋友圈列表
/api/v1/moments/post:
post:
tags: [朋友圈]
summary: 发布朋友圈
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
content:
type: string
example: "今天天气很好!"
responses:
'200':
description: 发布结果
/api/v1/moments/{sns_id}:
get:
tags: [朋友圈]
summary: 获取朋友圈详情
parameters:
- name: sns_id
in: path
required: true
schema:
type: string
responses:
'200':
description: 朋友圈详情
/api/v1/moments/{sns_id}/comments:
get:
tags: [朋友圈]
summary: 获取朋友圈评论
parameters:
- name: sns_id
in: path
required: true
schema:
type: string
responses:
'200':
description: 评论列表
# ==================== 视频号 ====================
/api/v1/finder/contacts:
get:
tags: [视频号]
summary: 获取视频号关注列表
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: 视频号联系人
/api/v1/finder/videos:
get:
tags: [视频号]
summary: 获取视频号内容缓存
responses:
'200':
description: 视频号内容
/api/v1/finder/open:
post:
tags: [视频号]
summary: 打开视频号界面
responses:
'200':
description: 操作结果
# ==================== 收藏 ====================
/api/v1/favorites:
get:
tags: [收藏]
summary: 获取收藏列表
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 收藏列表
# ==================== 红包/钱包 ====================
/api/v1/wallet/redpackets:
get:
tags: [红包/钱包]
summary: 获取红包记录
description: 包含已收红包、钱包流水、AA支付记录
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 红包记录
/api/v1/wallet/info:
get:
tags: [红包/钱包]
summary: 获取钱包信息
description: 包含用户信息、钱包类型、绑定银行卡
responses:
'200':
description: 钱包信息
/api/v1/wallet/ledger:
get:
tags: [红包/钱包]
summary: 获取钱包流水账单
parameters:
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: 账单记录
content:
application/json:
example:
success: true
records:
- transferId: "xxx"
tradeAmount: "100.00"
tradeDirection: "1"
tradeType: "红包"
talker: "wxid_abc"
# ==================== 文件/媒体 ====================
/api/v1/media/files:
get:
tags: [文件/媒体]
summary: 获取文件消息记录
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 文件列表
/api/v1/media/images:
get:
tags: [文件/媒体]
summary: 获取图片记录83069张
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 图片列表
/api/v1/media/videos:
get:
tags: [文件/媒体]
summary: 获取视频记录792条
parameters:
- name: limit
in: query
schema:
type: integer
default: 50
responses:
'200':
description: 视频列表
/api/v1/media/voices:
get:
tags: [文件/媒体]
summary: 获取语音记录
responses:
'200':
description: 语音列表
# ==================== 群组 ====================
/api/v1/groups:
get:
tags: [群组管理]
summary: 获取群组列表50个
parameters:
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: 群组列表
/api/v1/groups/{group_id}:
get:
tags: [群组管理]
summary: 获取群组详情
parameters:
- name: group_id
in: path
required: true
schema:
type: string
example: "7615610559@chatroom"
responses:
'200':
description: 群组详情
/api/v1/groups/{group_id}/members:
get:
tags: [群组管理]
summary: 获取群成员列表
parameters:
- name: group_id
in: path
required: true
schema:
type: string
responses:
'200':
description: 成员列表
/api/v1/groups/{group_id}/notice:
put:
tags: [群组管理]
summary: 设置群公告
parameters:
- name: group_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
notice:
type: string
example: "群公告内容"
responses:
'200':
description: 设置结果
/api/v1/groups/{group_id}/name:
put:
tags: [群组管理]
summary: 修改群名称
parameters:
- name: group_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
example: "新群名称"
responses:
'200':
description: 修改结果
/api/v1/groups/{group_id}/nickname:
put:
tags: [群组管理]
summary: 设置我在群内的昵称
parameters:
- name: group_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
nickname:
type: string
responses:
'200':
description: 设置结果
/api/v1/groups/{group_id}/kick:
post:
tags: [群组管理]
summary: 踢出群成员
parameters:
- name: group_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
member_id:
type: string
example: "wxid_abc123"
responses:
'200':
description: 操作结果
/api/v1/groups/{group_id}/message:
post:
tags: [群组管理]
summary: 发送群消息
parameters:
- name: group_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
example: "群消息内容"
responses:
'200':
description: 发送结果
# ==================== 标签 ====================
/api/v1/labels:
get:
tags: [标签]
summary: 获取标签列表36个
responses:
'200':
description: 标签列表
/api/v1/labels/{label_id}/members:
get:
tags: [标签]
summary: 获取标签下的联系人
parameters:
- name: label_id
in: path
required: true
schema:
type: string
responses:
'200':
description: 标签成员
# ==================== 小程序 ====================
/api/v1/miniapps:
get:
tags: [小程序]
summary: 获取小程序使用记录
responses:
'200':
description: 小程序列表
/api/v1/miniapps/open:
post:
tags: [小程序]
summary: 打开小程序
requestBody:
content:
application/json:
schema:
type: object
properties:
app_id:
type: string
responses:
'200':
description: 操作结果
# ==================== 导航 ====================
/api/v1/navigate/chat:
post:
tags: [导航]
summary: 导航到聊天界面
requestBody:
content:
application/json:
schema:
type: object
properties:
wxid:
type: string
responses:
'200':
description: 操作结果
/api/v1/navigate/moments:
post:
tags: [导航]
summary: 导航到朋友圈
responses:
'200':
description: 操作结果
/api/v1/navigate/contacts:
post:
tags: [导航]
summary: 导航到通讯录
responses:
'200':
description: 操作结果
# ==================== 高级SQL ====================
/api/v1/db/query:
post:
tags: [高级SQL]
summary: 执行原始SQL查询
description: 直接查询微信DB支持所有23个数据库
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [sql]
properties:
sql:
type: string
example: "SELECT COUNT(*) as cnt FROM rcontact WHERE type=3"
db:
type: string
description: 数据库名称不填则用EnMicroMsg
example: "WalletCoreDB-2"
responses:
'200':
description: 查询结果
/api/v1/db/info:
get:
tags: [高级SQL]
summary: 获取所有DB实例信息
responses:
'200':
description: DB列表
/api/v1/db/tables:
get:
tags: [高级SQL]
summary: 枚举所有DB的表
responses:
'200':
description: 所有表结构
tags:
- name: 系统
description: 系统管理、连接、截图
- name: 账号
description: 微信账号信息
- name: 联系人
description: 联系人管理4991人
- name: 消息
description: 消息发送、群发、读取
- name: 朋友圈
description: 朋友圈读取、发布、评论
- name: 视频号
description: 视频号Finder
- name: 收藏
description: 微信收藏
- name: 红包/钱包
description: 红包记录、钱包流水、银行卡
- name: 文件/媒体
description: 文件、图片83069张、视频792条、语音
- name: 群组管理
description: 群组列表、成员、公告、名称、踢人
- name: 标签
description: 联系人标签36个
- name: 小程序
description: 小程序使用记录
- name: 导航
description: 界面导航控制
- name: 高级SQL
description: 原始SQL查询支持23个数据库