tencent cloud

即时通信 IM

动态与公告
产品动态
公告
产品简介
产品概述
基本概念
应用场景
功能介绍
账号系统
用户资料与关系链
消息管理
群组相关
公众号系统
音视频通话 Call
使用限制
购买指南
计费概述
价格说明
购买指引
续费指引
停服说明
退费说明
开发指引
Demo 专区
开通服务
体验 Demo
快速跑通
下载中心
SDK & Demo 源码
更新日志
聊天互动(含 UI)
TUIKit 组件介绍
快速开始
全功能接入
单功能接入
AI 集成
构建基础界面
更多特性
定义外观
国际化界面语言
推送服务(Push)
服务概述
名词解释
开通服务
快速跑通
厂商通道
数据统计
排查工具
客户端 API
服务端 API
推送回调
高级功能
更新日志
错误码
常见问题
智能客服
功能概述
快速入门
集成指引
管理员操作手册
客服操作手册
更多实践
直播间搭建
AI 聊天机器人方案
超大娱乐协作社群
Discord 实现指南
游戏内集成 Chat 指南
类 WhatsApp Channel 搭建方案
发送红包
Chat 应对防火墙限制相关
无 UI 集成
快速开始
集成 SDK
初始化
登录登出
消息相关
会话相关
群组相关
社群话题
用户管理
离线推送
云端搜索
本地搜索
公众号
客户端 API
JavaScript
Android
iOS & macOS
Swift
Flutter
Electron
Unity
React Native
C 接口
C++
服务端 API
生成 UserSig
REST API
第三方回调
控制台指南
新版控制台介绍
创建并升级应用
基本配置
功能配置
账号管理
群组管理
公众号管理
回调配置
用量统计
资源包查看指南
实时监控
开发辅助工具
访问管理
高级功能
常见问题
uni-app 常见问题
购买相关问题
SDK 相关问题
账号鉴权相关问题
用户资料与关系链相关问题
消息相关问题
群组相关问题
直播群相关问题
昵称头像相关问题
协议与认证
服务等级协议
安全合规认证
IM 政策
隐私政策
数据隐私和安全协议
平滑迁移方案
平滑迁移完整版
平滑迁移简化版
错误码
联系我们

React Native

PDF
聚焦模式
字号
最后更新时间: 2025-01-13 16:54:10

功能描述

消息回应功能是指对某条消息进行互动回应,典型的场景就是表情回应,表情回应是通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。





目前常见的表情回应展示方式有如下两种风格:
风格一



风格二



用户可以根据某个表情分页拉取所有使用该表情的用户资料。
您可以基于 SDK API 实现表情回应能力:
调用 addMessageReaction 接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。
调用 removeMessageReaction 接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。
调用 getMessageReactions 接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。
调用 getAllUserListOfMessageReaction 接口分页拉取消息 emoji 的全量使用者用户资料。
监听 TencentCloudChat.EVENT.MESSAGE_REACTIONS_UPDATE 事件,感知 emoji 的使用者信息变更,该事件会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。
说明:
v3.2.0 起支持,该功能仅对专业版、专业版plus和企业版客户开放,购买专业版、专业版plus或企业版后可使用。

添加消息回应

调用 addMessageReaction 接口可以添加消息回应。
接口
chat.addMessageReaction(message, reactionID);
参数
属性
含义
说明
message
消息对象
消息必须是发送成功的状态。
reactionID
消息回应 ID
在表情回应场景,reactionID 为表情 ID。
说明:
单条消息最大支持 10 个 Reaction,单个 Reaction 最大支持 100 个用户。
如果单条消息 Reaction 数量超过最大限制(10),调用接口会返回错误码 23005。
如果单个 Reaction 用户数量超过最大限制(100),调用接口会返回错误码 23006。
如果 Reaction 已经包含当前用户,调用接口会返回错误吗 23007。
返回值
Promise
示例
let promise = chat.addMessageReaction(message, 'smile');
promise.then(function(imResponse) {
// 添加消息回应成功
}).catch(function(imError) {
// 添加消息回应失败
console.warn('addMessageReaction error:', imError);
});

删除消息回应

调用 removeMessageReaction 接口删除消息回应。
接口
chat.removeMessageReaction(message, reactionID);
参数
属性
含义
说明
message
消息对象
消息必须是发送成功的状态。
reactionID
消息回应 ID
在表情回应场景,reactionID 为表情 ID。
说明:
如果 Reaction 不存在,调用接口会返回错误码 23008 。
如果 Reaction 不包含当前用户,调用接口会返回错误码 23009。
返回值
Promise
示例
let promise = chat.removeMessageReaction(message, 'smile');
promise.then(function(imResponse) {
// 删除消息回应成功
}).catch(function(imError) {
// 删除消息回应失败
console.warn('removeMessageReaction error:', imError);
});

批量拉取多条消息回应信息

调用 getMessageReactions 接口批量拉取多条消息回应信息。
接口
chat.getMessageReactions(options);
参数
属性
含义
说明
messageList
消息列表
消息必须属于同一个会话,消息必须是发送成功的状态。
maxUserCountPerReaction
每个 Reaction 返回的最大用户资料数量
取值范围[0,10],每个 Reaction 最多只返回前 10 个用户资料,如需更多用户资料,
可以按需调用 getAllUserListOfMessageReaction 接口分页拉取。
返回值
Promise
示例
let promise = chat.getMessageReactions({
messageList: [message1, message2],
maxUserCountPerReaction: 10,
});
promise.then(function(imResponse) {
// 批量拉取成功
const resultList = imResponse.data;
resultList.forEach((item) => {
const { messageID, reactionList } = item;
// reactionList 返回的信息如下:
// reactionID - 消息回应 ID
// totalUserCount - 同一个 reactionID 回应消息的总的用户个数
// partialUserList - 同一个 reactionID 的部分用户列表,包含用户的 userID、nick、avatar 信息
});
}).catch(function(imError) {
// 批量拉取失败
console.warn('getMessageReactions error:', imError);
});

分页拉取全量消息回应用户列表

调用 getAllUserListOfMessageReaction 接口分页拉取全量消息回应用户列表。
接口
chat.getAllUserListOfMessageReaction(options);
参数
属性
含义
说明
message
消息对象
消息必须是发送成功的状态。
reactionID
消息回应 ID
在表情回应场景,reactionID 为表情 ID。
nextSeq
分页拉取的游标
第一次传 0,后续分页传 succ 返回的 nextSeq。
count
一次分页最大拉取个数
最大支持 100 个
返回值
Promise
示例
let promise = chat.getAllUserListOfMessageReaction({
message: message,
reactionID: 'smile',
nextSeq: 0,
count: 100,
});
promise.then(function(imResponse) {
// 获取成功
const { userList, nextSeq, isCompleted } = imResponse.data;
// userList - 用户信息列表,包含用户的 userID、nick、avatar 信息
// nextSeq - 用于续拉,分页续拉时需传入该字段
// isCompleted - 表示是否已经拉完所有的用户信息。isCompleted 为 true 时,nextSeq 为 0
}).catch(function(imError) {
// 获取失败
console.warn('getAllUserListOfMessageReaction error:', imError);
});

消息回应信息更新

当消息回应信息发生了变更时,SDK 会派发 TencentCloudChat.EVENT.MESSAGE_REACTIONS_UPDATED 事件,您可以在注册的回调中获取到更新的消息回应信息。
说明:
当变更的 Reaction 信息里的 totalUserCount 字段值为 0 时,表明该 Reaction 已经没有用户在使用,您可以在 UI 上移除该 Reaction 的展示。
示例
let onMessageReactionsUpdated = function(event) {
const { messageID, reactionList } = event.data;
// messageID - 消息 ID
// reactionList - 消息回应更新列表
reactionList.forEach((item) => {
const { reactionID, totalUserCount, partialUserList } = item;
// reactionID - 消息回应 ID
// totalUserCount - 同一个 reactionID 回应消息的总的用户个数
// partialUserList - 同一个 reactionID 的部分用户列表
});
};
chat.on(TencentCloudChat.EVENT.MESSAGE_REACTIONS_UPDATED, onMessageReactionsUpdated);


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈