====== 用户属性 ====== 更新时间: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、昵称和头像,来展示用户名片。