用户资料托管
更新时间: 2024/03/14 19:21:11
云信 IM 提供用户资料功能,支持用户资料托管以及用户关系的维护。
初始化时同步用户资料
用户资料及用户关系相关初始化参数如下:
示例代码:
javascriptnim.on('syncMyNameCard', function(data) {
// 同步时收到个人信息
data.myInfo = data
})
nim.on('updateMyNameCard', function(data) {
// 收到多端同步个人信息更新
data.myInfo = data
})
nim.on('users', function(data) {
// 同步阶段收到用户信息的事件
data.users = {}
for (let user of data) {
data.users[user.account] = user
}
})
nim.on('updateUserInfo', function(userInfo) {
// 收到用户资料更新的事件
data.users = data.users || {}
data.users[userInfo.account] = userInfo
})
// 本地更新个人名片后,通过返回数据设置
const newMyNameCard = await nim.user.updateMyNameCard({nick: 'new nick name'})
data.myInfo = newMyNameCard
参数解释:
syncMyNameCard
: 同步个人资料回调, 返回个人资料updateMyNameCard
: 当前登录用户在其它端修改自己的个人资料后的回调,返回个人资料users
: 同步好友等其他用户资料的回调,返回其他用户资料updateUserInfo
: 其他用户资料更新回调,返回更新后的其他用户资料updateMyNameCard
:个人资料更新回调,返回更新后的个人用户资料
更新我的资料
调用 updateMyNameCard
更新我的资料。
示例代码:
js nim.user.updateMyNameCard({
// 头像地址
avatar: 'https://www.xxx.yy/zz.jpg',
// 昵称
nick: 'nick',
// 邮箱
email: 'xxx@yyy.zzz'
})
用户资料更新时机
- 用户资料除自己之外,不保证其他用户资料实时更新,其他用户资料更新时机为:
- 收到此用户发来的消息
- 初始化时同步好友的用户资料(
syncFriend
)
- 如果想手动更新用户资料,请参考获取用户资料
获取用户资料
调用 getUsersNameCardFromServer
获取用户资料列表,每次最多 150 个。
示例代码:
jsconst nameCards = await nim.user.getUsersNameCardFromServer({
"accounts": [
"cs1"
]
})
用户关系管理
黑名单及静音管理接口如下:
示例代码:
jsawait nim.user.setBlack({
"account": "{{TARGET_USER_ACCOUNT_ID}}",
"isAdd": true
})
var blacklist = await nim.user.getBlackList()
console.log(blacklist)
// [
// {
// "account": "{{TARGET_USER_ACCOUNT_ID}}",
// "updateTime": 1640832246454,
// "createTime": 1640832246454,
// "isBlack": true
// },
// ]
await nim.user.setBlack({
"account": "{{TARGET_USER_ACCOUNT_ID}}",
"isAdd": false
})
var blacklist = await nim.user.getBlackList()
console.log(blacklist)
// []
此文档是否对你有帮助?