FriendApi
好友操作模块,涵盖好友列表、分类、点赞、请求处理等。
方法
好友列表
| 方法 | 返回类型 | 说明 |
|---|---|---|
getFriendList() | Result<FriendInfo[]> | 获取好友列表 |
getFriendsWithCategory() | Result<FriendCategory[]> | 获取好友分类列表 |
getUnidirectionalFriendList() | Result<FriendInfo[]> | 获取单向好友列表 |
好友操作
| 方法 | 返回类型 | 说明 |
|---|---|---|
sendLike(userId: number, times?: number) | Result<void> | 发送好友赞 |
deleteFriend(userId: number) | Result<void> | 删除好友 |
setFriendRemark(userId: number, remark: string) | Result<void> | 设置好友备注 |
请求处理
| 方法 | 返回类型 | 说明 |
|---|---|---|
setFriendAddRequest(flag: string, approve: boolean, remark?: string) | Result<void> | 处理加好友请求 |
setGroupAddRequest(flag: string, approve?: boolean, reason?: string) | Result<void> | 处理加群请求/邀请 |
消息管理
| 方法 | 返回类型 | 说明 |
|---|---|---|
markPrivateMsgAsRead(userId: number, groupId?: number, messageId?: string) | Result<void> | 标记私聊消息已读 |
forwardFriendSingleMsg(userId: number, messageId: string) | Result<void> | 转发单条消息到私聊 |
扩展
| 方法 | 返回类型 | 说明 |
|---|---|---|
getProfileLike(start?: number, count?: number) | Result<ProfileLike> | 获取个人资料点赞列表 |
fetchEmojiLike(messageId: number | string, emojiId: number | string, emojiType: number | string, count: number, cookie?: string) | Result<EmojiLike> | 获取表情回应列表 |
ncGetUserStatus(userId: number) | Result<UserStatus> | 获取用户在线状态(NapCat 扩展) |
返回数据结构
FriendInfo
ts
interface FriendInfo {
user_id: number
nickname: string
remark?: string
[key: string]: unknown
}FriendCategory
ts
interface FriendCategory {
category_id: number
category_name: string
friends: FriendInfo[]
[key: string]: unknown
}ProfileLike
ts
interface ProfileLike {
like_list: { user_id: number; nickname: string; time: number }[]
[key: string]: unknown
}EmojiLike
ts
interface EmojiLike {
emoji_likes_list: { emoji_id: string; count: number }[]
[key: string]: unknown
}UserStatus
ts
interface UserStatus {
user_id: number
status: number
ext_status: number
[key: string]: unknown
}示例
ts
import { FriendApi } from '@aemeath-projects/napcat'
const friend = new FriendApi(client)
// 获取好友列表
const list = await friend.getFriendList()
if (list.ok) {
list.data.forEach((f) => console.log(f.user_id, f.nickname))
} else {
console.error('获取好友列表失败:', list.error.code, list.error.message)
}
// 处理好友请求
const requestResult = await friend.setFriendAddRequest('flag_string', true, '你好')
if (requestResult.ok) {
console.log('已同意好友请求')
}
// 获取好友分类列表
const cats = await friend.getFriendsWithCategory()
if (cats.ok) {
cats.data.forEach((cat) => {
console.log(`分类: ${cat.category_name}`, `好友数: ${cat.friends.length}`)
})
}
// 发送好友赞
await friend.sendLike(123456789, 10)