Skip to content

NTQQ API 总览

以下数据从 QQ 3.2.27 的 wrapper.node 运行时内省获得。

导出类一览

类名实例方法静态方法
NodeIBatchUploadManager110
NodeIGetA2TicketCallback10
NodeIKernelAddBuddyService60
NodeIKernelAlbumService270
NodeIKernelAvatarService140
NodeIKernelAVSDKService70
NodeIKernelBaseEmojiService80
NodeIKernelBatchUploadService20
NodeIKernelBdhUploadService60
NodeIKernelBizKitService10
NodeIKernelBuddyService550
NodeIKernelCollectionService210
NodeIKernelConfigMgrService80
NodeIKernelDbToolsService30
NodeIKernelDirectSessionService120
NodeIKernelECDHService50
NodeIKernelEmojiService20
NodeIKernelFeedService723
NodeIKernelFileAssistantService320
NodeIKernelFileBridgeClientService250
NodeIKernelFileBridgeHostService70
NodeIKernelFlashTransferService1020
NodeIKernelGProGuildMsgService420
NodeIKernelGroupSchoolService180
NodeIKernelGroupService1750
NodeIKernelGroupTabService30
NodeIKernelGuildFileTransferService210
NodeIKernelGuildMsgService310
NodeIKernelGuildService60818
NodeIKernelHandOffService80
NodeIKernelLiteBusinessService110
NodeIKernelLockService40
NodeIKernelLoginService241
NodeIKernelMiniAppService40
NodeIKernelMSFService110
NodeIKernelMsgBackupService180
NodeIKernelMsgService2590
NodeIKernelNearbyProService50
NodeIKernelNodeMiscService1440
NodeIKernelOnlineStatusService110
NodeIKernelPersonalAlbumService430
NodeIKernelProfileLikeService50
NodeIKernelProfileService410
NodeIKernelPublicAccountService70
NodeIKernelQiDianService90
NodeIKernelQQPlayService110
NodeIKernelRDeliveryService60
NodeIKernelRecentContactService300
NodeIKernelRemotingService70
NodeIKernelRichMediaService422
NodeIKernelRobotService840
NodeIKernelSearchService530
NodeIKernelSettingService250
NodeIKernelSkinService140
NodeIKernelStorageCleanService160
NodeIKernelTestPerformanceService20
NodeIKernelThirdPartySigService70
NodeIKernelTianShuService40
NodeIKernelTicketService30
NodeIKernelTipOffService60
NodeIKernelUixConvertService20
NodeIKernelUnifySearchService100
NodeIKernelUnitedConfigService70
NodeIKernelVasSystemUpdateService50
NodeIKernelWiFiPhotoCheckIfPendingRequestCallback10
NodeIKernelWiFiPhotoClientService250
NodeIKernelWiFiPhotoDeletePhotoBatchCallback10
NodeIKernelWiFiPhotoGetAlbumListCallback10
NodeIKernelWiFiPhotoGetAllPhotoSimpleInfoCallback10
NodeIKernelWiFiPhotoGetPhotoCallback10
NodeIKernelWiFiPhotoGetPhotoInfoBatchCallback10
NodeIKernelWiFiPhotoHostService100
NodeIKernelYellowFaceForManagerService20
NodeIKernelYellowFaceService50
NodeIO3MiscService61
NodeIOPSafePwdEdit111
NodeIQQEmailService50
NodeIQQGProWrapperSession71
NodeIQQNTStartupSessionWrapper32
NodeIQQNTWrapperEngine111
NodeIQQNTWrapperNetwork51
NodeIQQNTWrapperSession811
NodeIShareToWechatService40
NodeISpan60
NodeQQNTWrapperUtil064

重点类说明

NodeIQQNTWrapperEngine

QQ 内核引擎,全局单例。通过 .get() 获取实例,调用 initWithDeskTopConfig() 初始化。

NodeIKernelLoginService

登录服务。处理 QR 码登录、快速登录、Token 刷新。

NodeIQQNTWrapperSession

会话管理器。登录成功后创建,提供 48 个 get*Service() 方法访问各子服务。

NodeIKernelMsgService

消息服务(259 方法)。发送/接收/撤回消息、媒体上传、转发等。

合并转发相关方法

以下签名通过 wrapper.node 符号表(C++ mangled names)逆向 + 运行时 hook 验证得到:

方法JS 参数数C++ 签名(简化)
multiForwardMsgWithComment5(vector<MultiMsgInfo>, Contact src, Contact dest, vector<MsgElement>, unordered_map<int,MsgAttributeInfo>)
multiForwardMsg3(vector<MultiMsgInfo>, Contact src, Contact dest)
buildMultiForwardMsg1(BuildMultiMsgReqInfo)
addLocalRecordMsg5(Contact, long msgId, MsgElement, unordered_map<int,MsgAttributeInfo>, bool)
addLocalRecordMsgWithExtInfos3(Contact, long msgId, AddLocalRecordMsgParams)
generateMsgUniqueId2(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 静态方法)。编解码、路径处理等辅助功能。

Released under the Apache 2.0 License.