====== 用户属性 ======
更新时间:2021-12-31
新版文档见:[[ccim:web:userprofile|用户属性]]。
===== 产品介绍 =====
用户属性指的是用户的信息,包括:昵称、头像、年龄、手机号等。
用户属性为可选服务,如果不希望敏感信息存储在环信服务器,用户可以自行维护。
使用用户属性功能可以获得以下能力:
* 标准的用户属性的读写能力,包括:昵称、头像url、邮箱、电话、性别、签名、生日;
* 自定义用户属性的读写能力,提供自定义扩展,可以通过JSON字符串添加多个属性。
===== 集成概述 =====
SDK提供了用户属性信息托管服务,可供用户保存头像、昵称等常用字段以及一个扩展字段。
环信可以管理的用户属性信息如下:
* nickname - 昵称
* avatarurl - 头像url
* mail - 邮箱
* phone - 电话
* gender - 性别
* sign - 签名
* birth - 生日
* ext - 扩展
===== 设置用户属性 =====
每个用户只有权限设置自己的用户属性。
设置用户属性时,可以设置用户的所有属性,也可以只设置用户的某一项属性
* 设置多个用户属性
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、昵称和头像,来展示用户名片。