NTQQ API 总览
以下数据从 QQ 3.2.27 的 wrapper.node 运行时内省获得。
导出类一览
| 类名 | 实例方法 | 静态方法 |
|---|---|---|
NodeIBatchUploadManager | 11 | 0 |
NodeIGetA2TicketCallback | 1 | 0 |
NodeIKernelAddBuddyService | 6 | 0 |
NodeIKernelAlbumService | 27 | 0 |
NodeIKernelAvatarService | 14 | 0 |
NodeIKernelAVSDKService | 7 | 0 |
NodeIKernelBaseEmojiService | 8 | 0 |
NodeIKernelBatchUploadService | 2 | 0 |
NodeIKernelBdhUploadService | 6 | 0 |
NodeIKernelBizKitService | 1 | 0 |
NodeIKernelBuddyService | 55 | 0 |
NodeIKernelCollectionService | 21 | 0 |
NodeIKernelConfigMgrService | 8 | 0 |
NodeIKernelDbToolsService | 3 | 0 |
NodeIKernelDirectSessionService | 12 | 0 |
NodeIKernelECDHService | 5 | 0 |
NodeIKernelEmojiService | 2 | 0 |
NodeIKernelFeedService | 72 | 3 |
NodeIKernelFileAssistantService | 32 | 0 |
NodeIKernelFileBridgeClientService | 25 | 0 |
NodeIKernelFileBridgeHostService | 7 | 0 |
NodeIKernelFlashTransferService | 102 | 0 |
NodeIKernelGProGuildMsgService | 42 | 0 |
NodeIKernelGroupSchoolService | 18 | 0 |
NodeIKernelGroupService | 175 | 0 |
NodeIKernelGroupTabService | 3 | 0 |
NodeIKernelGuildFileTransferService | 21 | 0 |
NodeIKernelGuildMsgService | 31 | 0 |
NodeIKernelGuildService | 608 | 18 |
NodeIKernelHandOffService | 8 | 0 |
NodeIKernelLiteBusinessService | 11 | 0 |
NodeIKernelLockService | 4 | 0 |
NodeIKernelLoginService | 24 | 1 |
NodeIKernelMiniAppService | 4 | 0 |
NodeIKernelMSFService | 11 | 0 |
NodeIKernelMsgBackupService | 18 | 0 |
NodeIKernelMsgService | 259 | 0 |
NodeIKernelNearbyProService | 5 | 0 |
NodeIKernelNodeMiscService | 144 | 0 |
NodeIKernelOnlineStatusService | 11 | 0 |
NodeIKernelPersonalAlbumService | 43 | 0 |
NodeIKernelProfileLikeService | 5 | 0 |
NodeIKernelProfileService | 41 | 0 |
NodeIKernelPublicAccountService | 7 | 0 |
NodeIKernelQiDianService | 9 | 0 |
NodeIKernelQQPlayService | 11 | 0 |
NodeIKernelRDeliveryService | 6 | 0 |
NodeIKernelRecentContactService | 30 | 0 |
NodeIKernelRemotingService | 7 | 0 |
NodeIKernelRichMediaService | 42 | 2 |
NodeIKernelRobotService | 84 | 0 |
NodeIKernelSearchService | 53 | 0 |
NodeIKernelSettingService | 25 | 0 |
NodeIKernelSkinService | 14 | 0 |
NodeIKernelStorageCleanService | 16 | 0 |
NodeIKernelTestPerformanceService | 2 | 0 |
NodeIKernelThirdPartySigService | 7 | 0 |
NodeIKernelTianShuService | 4 | 0 |
NodeIKernelTicketService | 3 | 0 |
NodeIKernelTipOffService | 6 | 0 |
NodeIKernelUixConvertService | 2 | 0 |
NodeIKernelUnifySearchService | 10 | 0 |
NodeIKernelUnitedConfigService | 7 | 0 |
NodeIKernelVasSystemUpdateService | 5 | 0 |
NodeIKernelWiFiPhotoCheckIfPendingRequestCallback | 1 | 0 |
NodeIKernelWiFiPhotoClientService | 25 | 0 |
NodeIKernelWiFiPhotoDeletePhotoBatchCallback | 1 | 0 |
NodeIKernelWiFiPhotoGetAlbumListCallback | 1 | 0 |
NodeIKernelWiFiPhotoGetAllPhotoSimpleInfoCallback | 1 | 0 |
NodeIKernelWiFiPhotoGetPhotoCallback | 1 | 0 |
NodeIKernelWiFiPhotoGetPhotoInfoBatchCallback | 1 | 0 |
NodeIKernelWiFiPhotoHostService | 10 | 0 |
NodeIKernelYellowFaceForManagerService | 2 | 0 |
NodeIKernelYellowFaceService | 5 | 0 |
NodeIO3MiscService | 6 | 1 |
NodeIOPSafePwdEdit | 11 | 1 |
NodeIQQEmailService | 5 | 0 |
NodeIQQGProWrapperSession | 7 | 1 |
NodeIQQNTStartupSessionWrapper | 3 | 2 |
NodeIQQNTWrapperEngine | 11 | 1 |
NodeIQQNTWrapperNetwork | 5 | 1 |
NodeIQQNTWrapperSession | 81 | 1 |
NodeIShareToWechatService | 4 | 0 |
NodeISpan | 6 | 0 |
NodeQQNTWrapperUtil | 0 | 64 |
重点类说明
NodeIQQNTWrapperEngine
QQ 内核引擎,全局单例。通过 .get() 获取实例,调用 initWithDeskTopConfig() 初始化。
NodeIKernelLoginService
登录服务。处理 QR 码登录、快速登录、Token 刷新。
NodeIQQNTWrapperSession
会话管理器。登录成功后创建,提供 48 个 get*Service() 方法访问各子服务。
NodeIKernelMsgService
消息服务(259 方法)。发送/接收/撤回消息、媒体上传、转发等。
合并转发相关方法
以下签名通过 wrapper.node 符号表(C++ mangled names)逆向 + 运行时 hook 验证得到:
| 方法 | JS 参数数 | C++ 签名(简化) |
|---|---|---|
multiForwardMsgWithComment | 5 | (vector<MultiMsgInfo>, Contact src, Contact dest, vector<MsgElement>, unordered_map<int,MsgAttributeInfo>) |
multiForwardMsg | 3 | (vector<MultiMsgInfo>, Contact src, Contact dest) |
buildMultiForwardMsg | 1 | (BuildMultiMsgReqInfo) |
addLocalRecordMsg | 5 | (Contact, long msgId, MsgElement, unordered_map<int,MsgAttributeInfo>, bool) |
addLocalRecordMsgWithExtInfos | 3 | (Contact, long msgId, AddLocalRecordMsgParams) |
generateMsgUniqueId | 2 | (int chatType, string time) → 返回 16 位 ID 字符串 |
multiForwardMsgWithComment 实测参数:
javascript
multiForwardMsgWithComment(
[{ msgId: "7627390034706506494", senderShowName: "A" }, ...], // MultiMsgInfo[]
{ chatType: 1, peerUid: "u_xxx", guildId: "" }, // srcPeer
{ chatType: 2, peerUid: "614990477", guildId: "" }, // destPeer
[], // comments (MsgElement[])
new Map() // attrs
)
// result: { result: 0, errMsg: "success" }addLocalRecordMsg 实测参数:
javascript
addLocalRecordMsg(
{ chatType: 1, peerUid: "u_xxx", guildId: "" }, // peer
"7627386457096665", // msgId (generateMsgUniqueId 生成)
{ elementType: 1, elementId: "", textElement: { content: "test", ... } }, // 单个 MsgElement
new Map(), // attrs
false // bool flag
)
// result: { result: 0, errMsg: "" }addLocalRecordMsg 的局限
addLocalRecordMsg 创建的本地记录 msgId(16 位)无法被 multiForwardMsgWithComment 识别(返回 "Data Not Existed!")。multiForwardMsgWithComment 要求 msgId 对应真实的已发送消息记录(19 位 ID,由 sendMsg 产生)。因此合并转发功能必须通过 sendMsg 暂存到自身私聊来获取有效 msgId。
NodeIKernelGroupService
群组服务(175 方法)。群管理、成员管理、群公告、群文件等。
NodeIKernelBuddyService
好友服务(55 方法)。好友列表、好友请求、好友分组等。
NodeIKernelProfileService
资料服务(41 方法)。用户资料查询、UIN/UID 转换。
NodeIKernelRichMediaService
富媒体服务(42 方法)。图片/视频/语音的上传下载。
NodeQQNTWrapperUtil
工具类(64 静态方法)。编解码、路径处理等辅助功能。