Skip to content

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)

以 MIT 协议开源