消息扩展
消息扩展功能可以对已发送的消息增加、修改、删除扩展信息。
消息扩展功能可为消息增加基于 Key/Value 的状态标识。消息的扩展信息可在发送前、后设置或更新,可用于实现消息评论、礼物领取、订单状态变化等业务需求。
一条消息是否可携带或可设置扩展信息,由发送消息时的可扩展(canIncludeExpansion
)属性决定,发送后无法修改该属性。因此消息发送前需要将消息设置为可扩展,才能对该条消息进行扩展信息添加、删除等操作。
单条消息单次最多可设置 20 个扩展信息 KV 对,总计不可超过 300 个扩展信息 KV 对。在并发情况下如出现设置超过 300 个的情况,超出部分会被丢弃删除。
消息扩展(Key、Value 扩展信息)会被存储。如已开通历史消息云存储功能,从服务端获取的历史消息也会携带已设置的扩展信息。
提示
消息扩展仅支持单聊、群聊、超级群会话类型。不支持聊天室和系统会话。
实现思路
以订单状态变化为例,可通过消息扩展改变消息显示状态。以订单确认为例:
- 用户下单后,商家向用户发送订单确认消息,发送时设置
canIncludeExpansion: true
,并在expansion
中添加表示订单状态的Key/Value
,例如orderStatus: "未确认"
。 - 用户确认订单后,客户端调用
updateMessageExpansion
方法,更新该条消息的扩展信息,将orderStatus
更新为"已确认"
,同时更新本地消息样式。 - 发送方可通过监听扩展信息变更事件,实时获取该消息的状态变动,更新界面展示。
类似地,可实现:
- 礼物领取:消息初始扩展状态为未领取,用户点击领取后,更新扩展信息标识为已领取,实时变更消息样式。
- 消息评论:通过为原始消息设置或追加扩展信息,记录评论内容或状态。