Skip to main content

Overview

The NTQQMsgApi class provides methods for sending messages, retrieving message history, recalling messages, and other message-related operations.

Sending Messages

sendMsg

Send a message to a peer (user or group).
async sendMsg(
  peer: Peer,
  msgElements: SendMessageElement[],
  timeout = 10000
): Promise<RawMessage | undefined>
peer
Peer
required
Target peer object with chatType and peerUid
msgElements
SendMessageElement[]
required
Array of message elements (text, image, etc.)
timeout
number
default:"10000"
Timeout in milliseconds
return
RawMessage | undefined
The sent message object, or undefined if failed
Example:
const peer = {
  chatType: ChatType.KCHATTYPEGROUP,
  peerUid: '123456789',
};

const elements = [
  { textElement: { content: 'Hello, World!' } }
];

const msg = await core.apis.MsgApi.sendMsg(peer, elements);
console.log('Message sent:', msg.msgId);

forwardMsg

Forward messages from one peer to another.
async forwardMsg(
  srcPeer: Peer,
  destPeer: Peer,
  msgIds: string[]
)
srcPeer
Peer
required
Source peer where messages are from
destPeer
Peer
required
Destination peer to forward to
msgIds
string[]
required
Array of message IDs to forward

multiForwardMsg

Forward multiple messages as a combined forward message.
async multiForwardMsg(
  srcPeer: Peer,
  destPeer: Peer,
  msgIds: string[]
): Promise<RawMessage>
srcPeer
Peer
required
Source peer where messages are from
destPeer
Peer
required
Destination peer to forward to
msgIds
string[]
required
Array of message IDs to combine and forward
return
RawMessage
The combined forward message

Message History

getMsgHistory

Retrieve message history from a peer.
async getMsgHistory(
  peer: Peer,
  msgId: string,
  count: number,
  isReverseOrder: boolean = false
)
peer
Peer
required
Peer to get message history from
msgId
string
required
Starting message ID
count
number
required
Number of messages to retrieve
isReverseOrder
boolean
default:"false"
Whether to retrieve in reverse order
Example:
const history = await core.apis.MsgApi.getMsgHistory(
  peer,
  '0', // Start from latest
  20,  // Get 20 messages
  false
);

getMsgsByMsgId

Get specific messages by their IDs.
async getMsgsByMsgId(
  peer: Peer | undefined,
  msgIds: string[] | undefined
)
peer
Peer
required
Peer where messages are located
msgIds
string[]
required
Array of message IDs to retrieve

getSingleMsg

Get a single message by sequence number.
async getSingleMsg(peer: Peer, seq: string)
peer
Peer
required
Peer where message is located
seq
string
required
Message sequence number

getMultiMsg

Get multi-message (combined forward) content.
async getMultiMsg(
  peer: Peer,
  rootMsgId: string,
  parentMsgId: string
): Promise<GeneralCallResult & { msgList: RawMessage[] } | undefined>
peer
Peer
required
Peer where multi-message is located
rootMsgId
string
required
Root message ID
parentMsgId
string
required
Parent message ID
return
{ msgList: RawMessage[] }
Object containing the list of messages

Message Actions

recallMsg

Recall (delete) a sent message.
async recallMsg(peer: Peer, msgId: string)
peer
Peer
required
Peer where message is located
msgId
string
required
Message ID to recall
Example:
await core.apis.MsgApi.recallMsg(peer, msg.msgId);

setMsgRead

Mark messages as read for a peer.
async setMsgRead(peer: Peer)
peer
Peer
required
Peer to mark messages as read

markAllMsgAsRead

Mark all messages as read across all chats.
async markAllMsgAsRead()

Emoji Reactions

setEmojiLike

Add or remove an emoji reaction to a message.
async setEmojiLike(
  peer: Peer,
  msgSeq: string,
  emojiId: string,
  set: boolean = true
)
peer
Peer
required
Peer where message is located
msgSeq
string
required
Message sequence number
emojiId
string
required
Emoji ID to react with
set
boolean
default:"true"
true to add reaction, false to remove

getMsgEmojiLikesList

Get list of users who reacted with a specific emoji.
async getMsgEmojiLikesList(
  peer: Peer,
  msgSeq: string,
  emojiId: string,
  emojiType: string,
  cookie: string = '',
  count: number = 20
)
peer
Peer
required
Peer where message is located
msgSeq
string
required
Message sequence number
emojiId
string
required
Emoji ID
emojiType
string
required
Emoji type (usually ‘1’ or ‘2’)
Pagination cookie
count
number
default:"20"
Number of results to return

Group Files

getGroupFileList

Get list of files in a group.
async getGroupFileList(
  GroupCode: string,
  params: GetFileListParam
): Promise<GroupFileInfoUpdateItem[]>
GroupCode
string
required
Group code
params
GetFileListParam
required
Parameters including startIndex and fileCount
return
GroupFileInfoUpdateItem[]
Array of group file information

Temporary Chats

PrepareTempChat

Prepare a temporary chat session with a group member.
async PrepareTempChat(
  toUserUid: string,
  GroupCode: string,
  nickname: string
)
toUserUid
string
required
Target user UID
GroupCode
string
required
Group code where user is a member
nickname
string
required
User’s nickname

getTempChatInfo

Get information about a temporary chat.
async getTempChatInfo(chatType: ChatType, peerUid: string)
chatType
ChatType
required
Type of temporary chat
peerUid
string
required
Peer UID

Utility Methods

generateMsgUniqueId

Generate a unique message ID.
async generateMsgUniqueId(chatType: number): Promise<string>
chatType
number
required
Chat type number
return
string
Generated unique message ID

fetchFavEmojiList

Fetch favorite emoji list.
async fetchFavEmojiList(num: number)
num
number
required
Number of emojis to fetch

sendShowInputStatusReq

Send input status (typing indicator).
async sendShowInputStatusReq(peer: Peer, eventType: number)
peer
Peer
required
Target peer
eventType
number
required
Event type (e.g., typing)

Build docs developers (and LLMs) love