直接添加好友,无需对方同意。接收方会收到 type = 'addFriend' 的系统消息,此系统通知 from 字段为申请方账号,to 字段为接收方的账号
nim.addFriend({
account: 'user1',
ps: '我是张三',
done: function(err) {
if (err) {
console.log('添加好友失败', err)
} else {
console.log('添加好友成功')
}
}
})
要直接加为好友的账号
附言, 推荐开发者传入 JSON 格式化字符串。
申请加为好友,需要对方同意。接收方会收到 type = ‘applyFriend' 的系统通知。接收方可以选择 passFriendApply,或者 rejectFriendApply
passFriendApply 系统通知rejectFriendApply 系统通知nim.applyFriend({
account: 'user1',
ps: '你好,我是张三,想加你为好友',
done: function(err) {
if (err) {
console.log('申请加好友失败', err)
} else {
console.log('申请加好友成功,等待对方同意')
}
}
})
附言, 推荐开发者传入 JSON 格式化字符串。
删除好友。接收方会收到 type = 'deleteFriend' 的系统消息。此系统通知的from字段的值为删除方的帐号, to字段的值为被删除方的账号。
nim.deleteFriend({
account: 'user1',
delAlias: true,
done: function(err) {
if (err) {
console.log('删除好友失败', err)
} else {
console.log('删除好友成功')
}
}
})
是否要删除好友的备注
如果开发者在初始化SDK的时候设置了syncFriends为false, 那么就收不到onfriends回调, 可以调用此接口来获取好友列表
注:由于 v8.9.0 之后好友数量上限变为 10000,远端协议不允许一口气下发 10000 个。想要一口气获取有两种手段:
如果开发者使用数据库,那么此接口将会返回所有数据库中有效的,且 updateTime > options.updateTime 的好友记录
如果开发者不使用数据库,那么使用此接口,传入时间戳,将会从服务器获取 updateTime > options.timetag 的 3000 条记录,分页逻辑请自行处理。
nim.getFriends({
updateTime: 0,
done: function(err, friends) {
if (err) {
console.log('获取好友列表失败', err)
} else {
console.log('获取好友列表成功', friends)
}
}
})
时间戳,默认 0。获取更新时间大于此时间戳的升序 3000 条好友。
从数据库中批量获取好友信息, 不限个数
注: indexDB 数据库专用接口.
账号 id 列表. 不传则忽略这个过滤条件
nim.getFriendsFromDB({
accountIds: ['user1', 'user2'],
done: function(err, friends) {
if (err) {
console.log('从数据库获取好友失败', err)
} else {
console.log('从数据库获取好友成功', friends)
}
}
})
是否为我的好友
注:该接口需要数据库支持,若没有开启本地数据库能力,done 回调里只会返回 false
nim.isMyFriend({
account: 'user1',
done: function(err, isFriend) {
if (err) {
console.log('查询好友状态失败', err)
} else {
console.log('是否为我的好友:', isFriend)
}
}
})
通过好友申请。调用该函数后:
nim.passFriendApply({
idServer: sysMsg.idServer,
account: sysMsg.from,
ps: '很高兴认识你',
done: function(err) {
if (err) {
console.log('通过好友申请失败', err)
} else {
console.log('通过好友申请成功')
}
}
})
拒绝好友申请。调用该函数后:
nim.rejectFriendApply({
idServer: sysMsg.idServer,
account: sysMsg.from,
ps: '抱歉,暂时不添加陌生人',
done: function(err) {
if (err) {
console.log('拒绝好友申请失败', err)
} else {
console.log('拒绝好友申请成功')
}
}
})
更新好友的备注和扩展字段。多端登录设备会收到 onsyncfriendaction 回调
nim.updateFriend({
account: 'user1',
alias: '小明',
custom: JSON.stringify({ group: 'work' }),
done: function(err) {
if (err) {
console.log('更新好友备注失败', err)
} else {
console.log('更新好友备注成功')
}
}
})
备注
扩展字段, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容
好友相关 API