用户资料托管
更新时间: 2024/03/14 18:45:31
云信 IM 提供用户资料功能,将用户资料保存到云端托管服务中,支持用户信息管理、用户资料同步、资料更新推送,实现用户资料的统一管理和共享。
初始化时同步用户资料
用户资料相关初始化参数如下:
示例代码:
javascriptvar nim = NIM.getInstance({
onmyinfo: onMyInfo,
onupdatemyinfo: onUpdateMyInfo,
onusers: onUsers,
onupdateuser: onUpdateUser
});
function onMyInfo(user) {
console.log('收到我的名片', user);
data.myInfo = user;
updateMyInfoUI();
}
function onUpdateMyInfo(user) {
console.log('我的名片更新了', user);
data.myInfo = NIM.util.merge(data.myInfo, user);
updateMyInfoUI();
}
function updateMyInfoUI() {
// 刷新界面
}
function onUsers(users) {
console.log('收到用户资料列表', users);
data.users = nim.mergeUsers(data.users, users);
}
function onUpdateUser(user) {
console.log('用户资料更新了', user);
data.users = nim.mergeUsers(data.users, user);
}
参数解释:
onmyinfo
: 同步登录用户资料的回调onupdatemyinfo
: 当前登录用户在其它端修改自己的个人名片之后的回调onusers
: 同步好友用户资料的回调- 此回调是增量回调, 可以调用
nim.mergeUsers
来合并数据
- 此回调是增量回调, 可以调用
onupdateuser
: 用户资料更新后的回调,详见用户资料更新时机
更新我的资料
调用 updateMyInfo
更新我的资料。
示例代码:
javascriptnim.updateMyInfo({
nick: 'newNick',
avatar: 'http://newAvatar',
sign: 'newSign',
gender: 'male',
email: 'new@email.com',
birth: '1900-01-01',
tel: '13523578129',
// 扩展字段推荐使用 JSON 格式构建,否则会被其它客户端丢弃
custom: '{type: "newCustom", value: "new"}',
done: updateMyInfoDone
});
function updateMyInfoDone(error, user) {
console.log('更新我的名片' + (!error?'成功':'失败'));
console.log(error);
console.log(user);
if (!error) {
onUpdateMyInfo(user);
}
}
用户资料更新时机
- 用户资料除自己之外,不保证其他用户资料实时更新,其他用户资料更新时机为:
- 收到此用户发来的消息,会触发用户资料更新回调(
onupdateuser
) - 初始化时同步好友的用户资料(
syncFriendUsers
)
- 收到此用户发来的消息,会触发用户资料更新回调(
- 如果想手动更新用户资料,请参考获取用户资料
获取用户资料
调用 getUser
手动获取用户资料。
示例代码:
javascriptnim.getUser({
account: 'account',
done: getUserDone
});
function getUserDone(error, user) {
console.log(error);
console.log(user);
console.log('获取用户资料' + (!error?'成功':'失败'));
if (!error) {
onUsers(user);
}
}
获取用户资料数组
调用 getUsers
手动获取用户资料列表,每次最多 150 个。
示例代码:
javascriptnim.getUsers({
accounts: ['account1', 'account2'],
done: getUsersDone
});
function getUsersDone(error, users) {
console.log(error);
console.log(users);
console.log('获取用户资料数组' + (!error?'成功':'失败'));
if (!error) {
onUsers(users);
}
}
此文档是否对你有帮助?