更新时间:2021-12-31
新版文档见:用户属性。
用户属性指的是用户的信息,包括:昵称、头像、年龄、手机号等。 用户属性为可选服务,如果不希望敏感信息存储在环信服务器,用户可以自行维护。
使用用户属性功能可以获得以下能力:
SDK提供了用户属性信息托管服务,可供用户保存头像、昵称等常用字段以及一个扩展字段。
环信可以管理的用户属性信息如下:
每个用户只有权限设置自己的用户属性。 设置用户属性时,可以设置用户的所有属性,也可以只设置用户的某一项属性
let options = {
nickname: '昵称',
avatarurl: 'http://avatarurl',
mail: '123@qq.com',
phone: '16888888888',
gender: 'female',
birth: '2000-01-01',
sign: 'a sign',
ext: JSON.stringify({
nationality: 'China',
merit: 'Hello,世界!'
})
}
WebIM.conn.updateOwnUserInfo(options).then((res) => {
console.log(res)
})
WebIM.conn.updateOwnUserInfo('nickname', '昵称').then((res) => {
console.log(res)
})
获取用户属性时,可以获取用户的所有属性,也可以获取用户的指定属性,如只获取昵称、头像等
PS:单次数组请求length不要超过100!
获取用户所有属性的接口如下:
/**
* @param {String|Array} users - 用户id
*/
let users = 'user1' || ['user1', 'user2']
WebIM.conn.fetchUserInfoById(users).then((res) => {
console.log(res)
})
获取用户单个属性的接口如下:
/**
* @param {String|Array} users - 用户id
* @param {String|Array} properties - 查询属性
*/
WebIM.conn.fetchUserInfoById('userId', 'nickname').then((res) => {
console.log(res)
})
// 同时查询多个用户属性
WebIM.conn.fetchUserInfoById(['user1', 'user2'], ['nickname', 'avatarurl']).then((res) => {
console.log(res)
})
环信用户属性托管服务不负责管理用户头像文件,只存储头像文件的远程 URL 地址,用户需要使用阿里云、腾讯云等第三方文件托管服务存储头像文件。当用户设置头像时,需要先将头像文件上传到第三方文件托管服务器,然后将上传后得到的 URL 地址传入用户属性的头像 URL 字段,设置用户属性。显示头像时,先从 SDK 获取用户属性,得到头像 URL 字段,然后在 UI 层显示远程头像图片
SDK 中没有名片类型的消息,Demo中名片消息的收发使用已有的自定义消息类型,通过指定自定义消息的event为“userCard”,并在ext中添加展示名片所需要的环信id、昵称和头像,来展示用户名片。