上云无忧 > 文档中心 > 环信IM即时通讯(小程序) - 管理用户属性
IM即时通讯
环信IM即时通讯(小程序) - 管理用户属性

文档简介:
用户属性指实时消息互动用户的信息,如用户昵称、头像、邮箱、电话、性别、签名和生日等。 例如,在招聘场景下,利用用户属性功能可存储性别、邮箱、用户类型(面试者)、职位类型(Web 研发)等。查看用户信息时,可直接查询服务器存储的用户属性信息。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

用户属性指实时消息互动用户的信息,如用户昵称、头像、邮箱、电话、性别、签名和生日等。

例如,在招聘场景下,利用用户属性功能可存储性别、邮箱、用户类型(面试者)、职位类型(Web 研发)等。查看用户信息时,可直接查询服务器存储的用户属性信息。

本文介绍如何管理用户属性,包括设置、更新、存储并获取用户的相关信息。

注意

  • 用户属性存储在环信服务器。如果你有安全方面的顾虑,环信建议你自行管理用户属性。
  • 为保证信息安全,app 用户只能修改自己的用户属性。只有 app 管理员可以修改其他用户的用户属性。

技术原理

环信即时通讯 IM Web SDK 支持你通过调用 API 实现如下功能:

  • 设置或修改用户属性。
  • 获取指定用户的用户属性。

前提条件

开始前,请确保满足以下条件:

  • 完成 SDK 初始化,详见 快速开始。
  • 了解环信即时通讯 IM 的使用限制,详见 使用限制。

实现方法

本节介绍如何在项目中设置及获取用户属性。

实现过程中注意单个用户的所有属性的长度不超过 2 KB,单个 app 的所有用户属性的数据长度不超过 10 GB。

设置当前用户的属性

当前用户设置自己的所有属性或者仅设置一项指定属性。

参考如下示例代码,设置所有用户属性:

let option = { nickname: 'The 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, world!' }) } conn.updateUserInfo(option).then((res) => { console.log(res) }) 
 

参考如下示例代码,设置指定用户属性,例如昵称:

conn.updateUserInfo('nickname', 'Your nickname').then((res) => { console.log(res) }) 
 

若调用 RESTful 的接口设置或删除用户属性,请求中必须传以下字段各客户端才能获取到。

字段 类型 备注
nickname String 用户昵称。长度在 64 字符内。
avatarurl String 用户头像 URL 地址。长度在 256 字符内。
phone String 用户联系方式。长度在 32 字符内。
mail String 用户邮箱。长度在 64 字符内。
gender Number 用户性别。
- 1:男;
- 2:女;
- (默认)0:未知;
- 设置为其他值无效。
sign String 用户签名。长度在 256 字符内。
birth String 用户生日。长度在 64 字符内。
ext String 扩展字段。

获取用户属性

你可以调用 fetchUserInfoById 方法查询指定用户的用户属性。每次调用最多可获取 100 个用户的用户属性。

参考以下示例代码获取指定用户的所有属性:

/**
 * @param {String|Array} users 用户 ID。可设置一个用户 ID,也可通过数组形式设置多个。
 */ let users = 'user1' || ['user1', 'user2'] conn.fetchUserInfoById(users).then((res) => { console.log(res) }) 
 

参考以下示例代码获取用户的指定属性。

/**
 * @param {String|Array} users 用户 ID。可设置一个用户 ID,也可通过数组形式设置多个。
 * @param {String|Array} properties 查询的用户属性。
 */ conn.fetchUserInfoById('userId', 'nickname').then((res) => { console.log(res) }) 
// 同时查询多个用户属性。 conn.fetchUserInfoById(['user1', 'user2'], ['nickname', 'avatarurl']).then((res) => { console.log(res) }) 
 

更多功能

管理用户头像

环信 IM SDK 仅支持存储头像文件的 URL 地址,不存储头像文件本身。要管理用户头像,你需要使用第三方文件存储服务。

在 app 中进行用户头像管理,需采取以下步骤:

  1. 开通第三方文件存储服务。详情可以参考文件存储服务商的文档。
  2. 将头像文件上传到第三方文件存储服务。文件上传成功后,你将获得头像文件的 URL 地址。
  3. 将用户属性中的 avatarurl 参数设置为头像文件的 URL 地址。
  4. 要显示头像,调用 fetchUserInfoById 获取头像文件的 URL,然后在本地 UI 渲染图像。

通过使用用户属性创建和发送名片消息

名片消息是自定义消息,包括指定用户的用户 ID、昵称、头像、电子邮件地址和电话号码。要创建和发送名片,请参考以下步骤:

  1. 将消息类型设置为 custom。
  2. 将自定义消息中的 customEvent 设置为 userCard。
  3. 在用户属性中查询 nickname、mail 和 avatarurl 的值,然后使用 customExts 将其设置为自定义消息的扩展信息。

参考以下示例代码创建和发送名片消息:

// 将自定义事件类型设置为 `userCard`。 let customEvent = "userCard"; // 通过 `customExts` 
将这些属性设置为自定义消息的扩展信息。 let customExts = { nickname: "昵称", avatarurl: "http://avatarurl",
 mail: "123@qq.com", phone: "16888888888", gender: "female", birth: "2000-01-01", sign: "a sign", }; 
let option = { // 设置消息类型。 type: "custom", // 设置消息接收方。 to: "username", // 设置消息事件。
 customEvent, // 设置消息内容。 customExts, chatType: "singleChat" } // 创建自定义消息。 let msg =
 WebIM.message.create(option); conn.send(msg).then((res)=>{ console.log('Success') }).catch((e)=>{ console.log('Fail') }); 
 

如果需要在名片中展示更丰富的信息,可以在 ext 中添加更多字段。

可参考 示例项目 (opens new window)中 src/components/contact/ 下 UserInfoModal 组件。

相似文档
  • SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理: 好友列表管理:查询好友列表、申请添加好友、同意好友申请、拒绝好友申请和删除好友等操作。 黑名单管理:查询黑名单列表、添加用户至黑名单以及将用户移出黑名单等操作。
  • 功能描述: 群组是支持多人沟通的即时通讯系统,成员关系相对稳定。所有群成员可以收到群中的消息,可以在群中发送消息。群成员离线时可以收到推送消息。群组成员支持多种角色:群主、群管理员和普通成员。群组提供丰富的管理能力,如群组禁言、群公告和群文件等。
  • 群组是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM Web SDK 在实时互动 app 中创建和管理群组,并实现群组相关功能。
  • 群组是支持多人沟通的即时通讯系统。本文介绍如何使用环信即时通讯 IM SDK 在实时互动 app 中实现群组成员管理相关功能。
  • 群组是支持多人沟通的即时通讯系统,本文指导你如何使用环信即时通讯 IM Web SDK 在实时互动 app 中实现群组属性相关功能。 技术原理: 环信即时通讯 IM Web SDK 提供群组管理,支持你通过调用 API 在项目中实现如下功能: 修改群组名称和描述; 管理群公告; 管理共享文件;
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部