上云无忧 > 文档中心 > 环信IM即时通讯(服务端) - 消息表情回复 Reaction REST API
IM即时通讯
环信IM即时通讯(服务端) - 消息表情回复 Reaction REST API

文档简介:
消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。 本页介绍如何使用即时通讯 IM RESTful API 实现 Reaction 功能。 前提条件: 要调用环信即时通讯 RESTful API,请确保满足以下要求: 已在环信即时通讯云控制台 开通配置环信即时通讯 IM 服务。 已从服务端获取 app token,详见 使用 App Token 鉴权。 了解环信 IM RESTful API 的调用频率限制,详见 接口频率限制。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

消息表情回复(“Reaction”)指用户在单聊和群聊场景中对单条消息回复表情,可丰富用户聊天时的互动方式。

本页介绍如何使用即时通讯 IM RESTful API 实现 Reaction 功能。

#前提条件

要调用环信即时通讯 RESTful API,请确保满足以下要求:

  • 已在环信即时通讯云控制台 开通配置环信即时通讯 IM 服务。
  • 已从服务端获取 app token,详见 使用 App Token 鉴权。
  • 了解环信 IM RESTful API 的调用频率限制,详见 接口频率限制。

#公共参数

#请求参数

参数 类型 是否必需 描述
host String 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息。
org_name String 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息。
app_name String 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息。
username String 用户 ID。

#认证方式

环信即时通讯 REST API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,必须在请求头部填入如下 Authorization 字段:

Authorization: Bearer YourAppToken

为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 仅支持使用 app token 的鉴权方式,详见 使用 App Token 鉴权。

#创建/追加 Reaction

在单聊或群聊场景中对单条消息创建或追加 Reaction。

#HTTP 请求

POST https://{host}/{org_name}/{app_name}/reaction/user/{username}

#路径参数

参数及描述详见 公共参数。

#请求 header

参数 类型 是否必需 描述
Content-Type String 内容类型。填入 application/json。
Authorization String App 管理员的鉴权 token,格式为 Bearer YourAppToken,其中 Bearer 为固定字符,后面为英文空格和获取到的 app token。

#请求 body

参数 类型 是否必需
描述
msgId String 消息 ID。
message String 表情 ID。长度不能超过 128 个字符,必须与客户端的设置一致。该参数对支持的字符集类型没有限制,若使用特殊字符,获取和删除 Reaction 时需对特殊字符进行 URL 编码。

#HTTP 响应

#响应 body

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

参数 类型 描述
requestStatusCode String 操作结果,ok 表示成功创建或追加 Reaction。
timestamp Long 请求响应的时间,Unix 时间戳,单位为毫秒。
data JSON 添加的 Reaction 的详情。
data.id String Reaction ID。
data.msgId String 添加 Reaction 的消息 ID。
data.msgType String 消息的会话类型:
- chat:单聊;
- groupchat:群聊。
data.groupId String 群组 ID。该参数在单聊时为 null。
data.reaction String 表情 ID,与客户端一致,与创建/追加 Reaction API的请求参数 message 相同。
data.createAt Instant Reaction 的创建时间。
data.updateAt Instant Reaction 的修改时间。

其他字段及描述详见 公共参数。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

#示例

#请求示例

curl -g -X POST 'https://localhost:8089/easemob-demo/easeim/reaction/user/e1' -H 'Authorization: 
Bearer <YourAppToken>' -H 'Content-Type: application/json' --data-raw '{
    "msgId":"997625372793113144",
    "message":"emoji_40"
}' 

#响应示例

{ "requestStatusCode": "ok", "timestamp": 1645774821181, "data": { "id": "946481033434607420", "msgId": 
"msg3333", "msgType": "chat", "groupId": null, "reaction": "message123456", "createdAt": "2022-02-24T10:
57:43.138934Z", "updatedAt": "2022-02-24T10:57:43.138939Z" } } 

#根据消息 ID 获取 Reaction

该方法根据单聊或群聊中的消息 ID 获取单个或多个消息的 Reaction 信息,包括 Reaction ID、使用的表情 ID、以及使用该 Reaction 的用户 ID 及用户人数。获取的 Reaction 的用户列表只展示最早三个添加 Reaction 的用户。

#HTTP 请求

GET https://{host}/{org_name}/{app_name}/reaction/user/{username}?msgIdList={N,M}&msgType={msgType}&groupId={groupId}

#路径参数

参数及描述详见 公共参数。

#查询参数

参数 类型 是否必需 描述
msgIdList Array 需要查询的消息 ID 列表,最多可传 20 个消息 ID。
msgType String 消息的会话类型:
- chat:单聊;
- groupchat:群聊。
groupId String 群组 ID。如果 msgType 设置为 groupchat,即拉取群中的 Reaction,必须指定群组 ID。

#请求 header

参数 类型 是否必需 描述
Authorization String App 管理员的鉴权 token,格式为 Bearer YourAppToken,其中 Bearer 为固定字符,后面为英文空格和获取到的 app token。

#HTTP 响应

#响应 body

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

参数 类型 描述
requestStatusCode String 接口相应 code 状态。OK 表示操作成功。
timestamp Long 请求响应的时间,Unix 时间戳,单位为毫秒。
data JSON Array 单个消息添加的 Reaction 的详情。
data.msgId String Reaction 对应的消息 ID。
data.reactionList JSON Array 单个消息的 Reaction 列表。
data.reactionList.reactionId String Reaction ID。
data.reactionList.reaction String 表情 ID,与客户端一致。该参数与创建/追加 Reaction API的请求参数 message 相同。
data.reactionList.count Int 添加该 Reaction 的用户人数。
data.reactionList.state Bool 当前请求用户是否添加过该 Reaction:
- true: 是;
- false:否。
data.reactionList.userList Array 添加 Reaction 的用户 ID 列表。只返回最早操作 Reaction 的三个用户的 ID。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

#示例

#请求示例

curl -g -X GET 'https://localhost:8089/easemob-demo/easeim/reaction/user/{{userId}}?msgIdList=msgId1&m
sgType=chat' -H 'Authorization: Bearer <YourAppToken>' 

#响应示例

{ "requestStatusCode": "ok", "timestamp": 1645774821181, "data": [ { "msgId": "msg123", "reactionLis
t": [ { "reactionId": "944330310986837168", "reaction": message123456, "count": 0, "state": false, 
"userList": [ "test123", "test456", "test1" ] } ] }, { "msgId": "msg1234", "reactionList": [ { "reactionId":
 "945272584050659838", "reaction": message123456, "count": 0, "state": false, "userList": [ "test5" ] } ] } ] } 

#删除 Reaction

删除当前用户追加的 Reaction。

#HTTP 请求

DELETE https://{host}/{org_name}/{app_name}/reaction/user/{username}?msgId={msgId}&message={message}

#路径参数

参数及描述详见 公共参数。

#请求 header

参数 类型 是否必需 描述
Authorization String App 管理员的鉴权 token,格式为 Bearer YourAppToken,其中 Bearer 为固定字符,后面为英文空格和获取到的 app token。

#查询参数

参数 类型 是否必需 描述
msgId String 消息 ID。
message String 表情 ID。长度不可超过 128 个字符。该参数的值必须与客户端一致。

#HTTP 响应

#响应 body

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

参数 类型 描述
requestStatusCode String 操作结果。ok 表示成功删除 Reaction。
timestamp Long 请求响应的时间,Unix 时间戳,单位为毫秒。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

#示例

#请求示例

curl -g -X DELETE 'https://localhost:8089/easemob-demo/easeim/reaction/user/wz?msgId=997625372793
113144&message=emoji_40' -H 'Authorization: Bearer <YourAppToken>' 

#响应示例

{ "requestStatusCode": "ok", "timestamp": 1645774821181 } 

#根据消息 ID 和表情 ID 获取 Reaction 信息

该方法根据指定的消息的 ID 和表情 ID 获取对应的 Reaction 信息,包括使用了该 Reaction 的用户 ID 及用户人数。

#HTTP 请求

GET https://{host}/{org_name}/{app_name}/reaction/user/{username}/detail?msgId={msgId}&message={message}&limit={limit}&cursor={cursor}

#路径参数

参数及描述详见 公共参数。

#查询参数

参数 类型 是否必需 描述
msgId String 消息 ID。
message String 表情 ID。长度不可超过 128 个字符。该参数的值必须与客户端一致。
limit Int 每页显示的 Reaction 条数。取值范围为 [1,50],默认值为 50。
cursor String 查询游标,指定数据查询的起始位置,分页获取时使用。

提示

分页获取时,服务器按 Reaction 添加时间的正序返回。若 limit 和 cursor 均不传值,服务器返回最早添加的 50 个 Reaction。

#请求 header

参数 类型 是否必需 描述
Authorization String App 管理员的鉴权 token,格式为 Bearer YourAppToken,其中 Bearer 为固定字符,后面为英文空格和获取到的 app token。

#HTTP 响应

#响应 body

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

参数 类型 描述
requestStatusCode String 操作结果,ok 表示成功获取 Reaction 信息。
timestamp Long 请求响应的时间,Unix 时间戳,单位为毫秒。
data JSON 消息添加的 Reaction 的详情。
data.reactionId String Reaction ID。
data.reaction String 表情 ID,与客户端一致。该参数与创建/追加 Reaction API的请求参数 message 相同。
data.count Int 添加该 Reaction 的用户人数。
data.state Bool 当前请求用户是否添加过该 Reaction。
- true:是;
- false:否。
data.userList Array 添加 Reaction 的用户 ID 列表。只返回最早操作 Reaction 的三个用户的 ID。
data.cursor String 查询游标,指定下次查询的起始位置。

其他字段及描述详见 公共参数。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

#示例

#请求示例(第一页)

curl -g -X GET 'https://localhost:8089/easemob-demo/easeim/reaction/user/wz/detail?msgId=99762778773075000
8&message=emoji_40&limit=50' -H 'Authorization: Bearer <YourAppToken>' 

#请求示例(第 N 页)

curl -g -X GET 'https://localhost:8089/easemob-demo/easeim/reaction/user/wz/detail?msgId=997627787730750008
&message=emoji_40&cursor=944330529971449164&limit=50' -H 'Authorization: Authorization: Bearer <YourAppToken>' 

#响应示例

{ "requestStatusCode": "ok", "timestamp": 1645776986146, "data": { "reactionId": "946463470818405943", "reaction":
 "message123456", "count": 1, "state": true, "userList": ["wz1"], "cursor": "946463471296555192" } }

相似文档
  • 功能概述: Server SDK 是对环信 IM REST API 的封装,这样做是为了节省服务器端开发者对接环信 API 的时间,只需要配置自己的 App Key 相关信息即可使用。 Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力。
  • 介绍: PHP SDK 是对环信 IM REST API 的封装,旨在节省服务器端开发者对接环信 API 的时间,只需要配置自己的 App Key 相关信息即可使用。 功能: PHP SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力。 依赖: PHP 5.3+
  • 本文介绍 REST 接口调用后的返回结果响应码。可根据返回数据中的 error 字段判断具体错误。 响应码:200(成功)。 响应码:4xx(请求错误)。这些状态代码表示请求可能出错,妨碍了服务器的处理。 响应码:5xx(服务器错误)。这些状态代码表示服务器在尝试处理请求时发生内部错误。
  • 回调功能,即环信 IM 服务器会在事件发生之前或之后,向你的应用服务器发送请求,你可以根据业务需求来干预事件的后续处理流程(发送前回调),或据此进行必要的数据同步(发送后回调)。
  • 开发者可以通过该回调实现实时监控用户在线、离线状态,以及状态变更原因(登入,登出,用户账号被动退出);如应用中需要实时展示用户在线、离线状态时,可通过此服务来实现。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部