> For the complete documentation index, see [llms.txt](https://relationlabs.gitbook.io/relation-one-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://relationlabs.gitbook.io/relation-one-api/api-zh/js-sdk/im-js-sdk/parse-message.md).

# 消息解析

使用 `messageParse()` 方法解析原始消息

```javascript
import { messageParser } from "@relationlabs/im"

const msg: Message

const parsedMsg: ParsedMessage = messageParser(msg)
```

类型定义

```javascript
// 消息类型
type MessageType = 'SYS' | 'TEXT' | 'CARD' | 'ANNOUNCEMENT' | 'BATCH_TRANSFER';

// 原始消息结构
type Message = {
    type: MessageType;
    content: string;
    quote?: Message;
}

// 解析后的消息结构
type ParsedMessage = {
    type: MessageType;
    content: string;
    parsedContent?: ParsedContent;
    quote?: Message;
    unidentified?: boolean | undefined;
}

//解析后的消息内容
type ParsedContent = string|JoinGroupMessage|ShareMessage|NormalImageMessage|NFTMessage|MentionMessage

// 邀请加入群组
type JoinGroupMessage = {
    groupId: string;
    groupName: string;
    chatType: 'p2p'|'group'
}

// 收藏分享
type ShareMessage = {
    shareUrl: string;
    shareName: string;
    shareIcon: string;
}

// 普通图片
type NormalImageMessage = {
    imgUrl: string;
    s3Key: string;
}

// NFT
type NFTMessage = {
    imgUrl: string;
    nftChain: string;
}

// 消息引用
type MentionMessage = {
    mentionContent: string;
    mentionPosition: number[];
}
```

`ParsedMessage` 中 `unidentified` 表示是否是当前可识别的消息，`parsedContent` 表示对原消息文本内容解析后的结果，其余字段原封不动的将原消息结构返回
