15.15 按融云消息 UID 查询单条消息【新增,待联调】

POST /tieup/api/v1/im/messages/query
Authorization: Bearer <access_token>
Content-Type: application/json

鉴权:需要 APP 登录态。服务端从 Token 读取 current_identity,客户端不能指定粉丝或偶像身份。

请求字段:

字段 类型 必填 说明
message_uid string 需要查询的单条融云消息 UID,来自历史消息的 messageUId,最大 128 字符

完整请求示例:

{
  "message_uid": "ARTIST-REPLY-UID"
}

响应字段:

字段 类型 说明
code integer 响应码,成功为 200,消息不存在或不可见为 404
message string 响应提示
data object/array 成功时为单条消息对象;404 时为数组 []
data.message_no string 本地平台消息编号
data.direction integer 消息方向:1=粉丝发偶像,2=偶像定向回复粉丝,3=偶像普通群发
data.conversationType integer 融云超级群会话类型,固定为 10
data.targetId string 融云超级群 ID
data.channelId string 融云超级群频道 ID,无频道为空字符串
data.messageId integer 本地消息表 ID
data.messageDirection integer 当前身份视角方向:1=当前身份发送,2=当前身份接收
data.senderUserId string 发送者融云用户 ID,绑定缺失时为空字符串
data.senderNickname string 发送者当前昵称;粉丝取用户昵称,艺人优先取艺名并回退用户昵称
data.sentStatus integer 融云发送状态:30=发送成功或已撤回;本接口不返回创建中或发送失败消息
data.receivedTime integer 接收时间,毫秒时间戳
data.sentTime integer 发送时间,优先使用融云真实毫秒时间戳,历史缺失时回退本地发送时间
data.objectName string 融云消息 ObjectName
data.content object 消息主体;媒体消息不返回 Base64,消息已撤回时返回空对象 {}
data.content.content string 文本正文;图片、语音、视频不返回该字段
data.content.imageUri string 图片原图 URL,仅图片消息返回
data.content.remoteUrl string 语音远程 URL,仅语音消息返回
data.content.sightUrl string 视频远程 URL,仅视频消息返回
data.content.duration integer 语音或视频时长,单位秒
data.content.size string 视频文件大小,单位字节
data.content.name string 语音或视频原始文件名
data.messageUId string 融云消息 UID,与请求的 message_uid 对应
data.canIncludeExpansion boolean 存在扩展快照且消息发送成功、未撤回、具备融云 UID 时返回 true,否则返回 false
data.expansionDic object 发送时扩展快照;普通粉丝消息在本地查询时覆盖当前画像和 replyCount,定向消息追加 is_read,群发消息追加 readCounttargetCount
data.expansionDic.is_read string 定向消息接收方实际已读状态:true=已读,false=未读
data.expansionDic.readCount string 仅群发消息返回,当前实时已读人数
data.expansionDic.targetCount string 仅群发消息返回,群发目标人数
data.directedUserIds array 定向接收融云用户 ID 列表,无值为空数组
data.disableUpdateLastMessage boolean 是否不更新最后消息,当前固定为 false
data.quoteInfo object 引用定位信息;无引用时返回空对象 {}
data.quoteInfo.messageUId string 被引用原消息融云 UID
data.quoteInfo.senderId string 被引用原消息发送者融云用户 ID
data.quoteInfo.objectName string 被引用原消息 ObjectName
data.quoteInfo.quoteMessageStatus integer 被引用原消息状态:0=正常,1=已撤回
data.originMessage object 当前身份可见的引用原消息展示信息;无引用、不可见或已被当前身份删除时返回空对象 {}
data.originMessage.senderNickname string 原消息发送者当前昵称
data.originMessage.content object 原消息主体;媒体不返回 Base64,已撤回时返回空对象 {};不继续递归展开原消息的引用
data.originMessage.content.content string 原消息文本正文
data.originMessage.content.imageUri string 原消息图片 URL
data.originMessage.content.remoteUrl string 原消息语音 URL
data.originMessage.content.sightUrl string 原消息视频 URL
data.originMessage.content.duration integer 原消息语音或视频时长,单位秒
data.originMessage.content.size string 原消息视频文件大小,单位字节
data.originMessage.content.name string 原消息语音或视频原始文件名
data.readReceiptInfo object 当前身份视角的已读回执信息
data.readReceiptInfo.isReceiptRequestMessage boolean 消息是否参与本地已读统计
data.readReceiptInfo.hasRespond boolean 当前身份作为接收方时是否已读;发送方视角固定为 false
data.readReceiptInfo.userIdList object 已读用户列表,当前固定为空对象 {}

完整成功响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "message_no": "MSG202607030002",
    "direction": 2,
    "conversationType": 10,
    "targetId": "tieup_artist_group_20001",
    "channelId": "",
    "messageId": 124,
    "messageDirection": 2,
    "senderUserId": "tieup_artist_20001",
    "sentStatus": 30,
    "receivedTime": 1783058460000,
    "sentTime": 1783058460000,
    "objectName": "RC:TxtMsg",
    "content": {
      "content": "收到,我会认真看完你的留言",
      "extra": ""
    },
    "messageUId": "ARTIST-REPLY-UID",
    "canIncludeExpansion": true,
    "expansionDic": {
      "senderRole": "artist",
      "artistId": "20001",
      "artistNickname": "示例艺人",
      "is_read": "false"
    },
    "directedUserIds": [
      "tieup_fan_10001"
    ],
    "disableUpdateLastMessage": false,
    "quoteInfo": {
      "messageUId": "BU2F-A9KJ-XXXX",
      "senderId": "tieup_fan_10001",
      "objectName": "RC:TxtMsg",
      "quoteMessageStatus": 0
    },
    "originMessage": {
      "senderNickname": "Tieup用户",
      "content": {
        "content": "你好,想和你分享今天发生的事",
        "extra": ""
      }
    },
    "readReceiptInfo": {
      "isReceiptRequestMessage": true,
      "hasRespond": false,
      "userIdList": {}
    },
    "senderNickname": "示例艺人"
  }
}

完整 404 响应示例:

{
  "code": 404,
  "message": "消息不存在或不可见",
  "data": []
}

说明:

  • 粉丝端只能查询本人定向消息,以及发送时间落在本人对该艺人任一订阅有效区间内的艺人普通群发;其他粉丝的定向消息不可查询。
  • 偶像端只能查询当前艺人超级群内的粉丝定向、艺人定向回复和艺人普通群发消息。
  • UID 不存在、超出当前身份权限或已被当前身份执行用户侧删除时统一返回相同的 404,不泄露消息是否真实存在。
  • 本接口只读取本地 tieup_im_message_stattieup_im_message_content,不调用融云历史接口,不自动标记已读,也不发送回执或队列任务。