15.6 偶像端消息收件箱【基础探测通过,待数据联调】

GET /tieup/api/v1/artist/message-inbox

查询参数:

参数 类型 必填 说明
page integer 页码,默认 1
page_size integer 每页数量,默认 20

鉴权:需要 Authorization: Bearer <access_token>,当前账号必须已开通偶像端。

数据按粉丝聚合,返回粉丝资料、未读数、最后消息、订阅过期时间等。最后消息按 sent_at DESC, id DESC 选择当前偶像身份未删除的最新定向消息,允许正常发送成功消息和已撤回消息;撤回后保留原消息位置,不回退到更早的普通消息。 响应字段:

字段 类型 说明
items array 当前页数据列表
items[].fan_user_id integer 粉丝用户 ID
items[].fan_nickname string 粉丝当前昵称
items[].fan_avatar string 粉丝当前头像,无值返回空字符串
items[].fan_online_status integer 粉丝在线状态
items[].rong_ultra_group_id string 当前偶像融云超级群 ID
items[].is_current_fan integer 当前是否仍为有效订阅粉丝
items[].subscription_expires_at string/null 当前聚合记录中的订阅到期时间
items[].last_message object/null 最后一条当前身份可见消息,字段格式与“偶像端全群消息列表”一致;无消息时为 null
items[].last_message.message_no string 本地消息编号
items[].last_message.direction integer 本地业务消息方向:1=粉丝发偶像,2=偶像定向回复粉丝
items[].last_message.conversationType integer 融云超级群会话类型,固定为 10
items[].last_message.targetId string 融云超级群 ID
items[].last_message.channelId string 融云超级群频道 ID
items[].last_message.messageId integer 本地消息表 ID
items[].last_message.messageDirection integer 偶像视角消息方向:1=当前偶像发送,2=当前偶像接收
items[].last_message.senderUserId string 发送者融云用户 ID
items[].last_message.sentStatus integer 融云发送状态;正常成功或已撤回均为 30
items[].last_message.receivedTime integer 接收时间,毫秒时间戳
items[].last_message.sentTime integer 发送时间,毫秒时间戳
items[].last_message.objectName string 原消息融云 ObjectName,撤回后保持不变
items[].last_message.content object 消息正文;撤回消息返回空对象 {}
items[].last_message.content.content string 文本消息正文,仅 RC:TxtMsg 返回
items[].last_message.content.imageUri string 图片原图 URL,仅 RC:ImgMsg 返回
items[].last_message.content.remoteUrl string 语音 URL,仅 RC:HQVCMsg 返回
items[].last_message.content.sightUrl string 视频 URL,仅 RC:SightMsg 返回
items[].last_message.content.duration integer 语音或视频时长,单位秒
items[].last_message.content.size string 视频文件大小,单位字节
items[].last_message.content.name string 语音或视频原始文件名
items[].last_message.messageUId string 融云服务端消息唯一 ID
items[].last_message.canIncludeExpansion boolean 存在扩展快照且消息发送成功、未撤回、具备融云 UID 时返回 true,否则返回 false
items[].last_message.expansionDic object 发送时扩展快照;普通粉丝消息在本地查询时批量覆盖当前画像和 replyCount,定向消息追加 is_read
items[].last_message.expansionDic.is_read string 定向消息接收方实际已读状态:truefalse
items[].last_message.directedUserIds array 定向接收融云用户 ID 列表
items[].last_message.disableUpdateLastMessage boolean 当前固定为 false
items[].last_message.quoteInfo object 引用消息信息,无引用时为空对象
items[].last_message.quoteInfo.messageUId string 被引用消息融云 UID
items[].last_message.quoteInfo.senderId string 被引用消息发送者融云用户 ID
items[].last_message.quoteInfo.objectName string 被引用消息 ObjectName
items[].last_message.quoteInfo.quoteMessageStatus integer 被引用消息状态:0=正常,1=已撤回
items[].last_message.originMessage object 当前偶像可见的引用原消息,无可见原消息时为空对象
items[].last_message.originMessage.senderNickname string 被引用原消息发送者当前昵称
items[].last_message.originMessage.content object 被引用原消息正文;原消息已撤回时为空对象 {}
items[].last_message.originMessage.content.content string 被引用文本消息正文
items[].last_message.originMessage.content.imageUri string 被引用图片消息原图 URL
items[].last_message.originMessage.content.remoteUrl string 被引用语音消息 URL
items[].last_message.originMessage.content.sightUrl string 被引用视频消息 URL
items[].last_message.originMessage.content.duration integer 被引用语音或视频时长,单位秒
items[].last_message.originMessage.content.size string 被引用视频文件大小,单位字节
items[].last_message.originMessage.content.name string 被引用语音或视频原始文件名
items[].last_message.readReceiptInfo object 偶像视角已读回执;撤回消息不参与已读统计
items[].last_message.readReceiptInfo.isReceiptRequestMessage boolean 正常发送成功且未撤回时为 true,撤回消息为 false
items[].last_message.readReceiptInfo.hasRespond boolean 当前偶像作为接收方时是否已读,撤回消息为 false
items[].last_message.readReceiptInfo.userIdList object 当前固定返回空对象 {}
items[].last_message_no string/null 兼容旧客户端的最后消息编号
items[].last_message_direction integer/null 兼容旧客户端的最后消息方向
items[].last_message_type string/null 兼容旧客户端的最后消息业务类型
items[].last_message_at string/null 兼容旧客户端的最后消息时间
items[].unread_count integer 偶像未读粉丝消息数,只统计发送成功、未撤回且不是订阅业务消息(message_type=subscriptionobject_name=Tieup:Subscribe)的消息
items[].fan_message_count integer 粉丝累计有效消息数
items[].artist_reply_count integer 偶像累计回复数
pagination.page integer 当前页码
pagination.page_size integer 每页数量
pagination.total integer 总数量
pagination.next_cursor string/null 游标分页预留,当前为 null

响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "items": [
      {
        "fan_user_id": 10001,
        "fan_nickname": "Tieup用户",
        "fan_avatar": "https://cdn.example.com/fan.png",
        "fan_online_status": 1,
        "rong_ultra_group_id": "tieup_artist_group_20001",
        "is_current_fan": 1,
        "subscription_expires_at": "2026-08-01 00:00:00",
        "last_message": {
          "message_no": "MSG2026070610300012345678",
          "direction": 1,
          "conversationType": 10,
          "targetId": "tieup_artist_group_20001",
          "channelId": "",
          "messageId": 456,
          "messageDirection": 2,
          "senderUserId": "tieup_fan_10001",
          "sentStatus": 30,
          "receivedTime": 1783314600000,
          "sentTime": 1783314600000,
          "objectName": "RC:TxtMsg",
          "content": {},
          "messageUId": "XXXX-JJJJ-KKKK",
          "canIncludeExpansion": true,
          "expansionDic": {
            "senderRole": "fan",
            "fanId": "10001",
            "artistId": "20001",
            "is_read": "false"
          },
          "directedUserIds": [
            "tieup_artist_20001"
          ],
          "disableUpdateLastMessage": false,
          "quoteInfo": {},
          "originMessage": {},
          "readReceiptInfo": {
            "isReceiptRequestMessage": false,
            "hasRespond": false,
            "userIdList": {}
          }
        },
        "last_message_no": "MSG2026070610300012345678",
        "last_message_direction": 1,
        "last_message_type": "text",
        "last_message_at": "2026-07-06 10:30:00",
        "unread_count": 0,
        "fan_message_count": 3,
        "artist_reply_count": 2
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 1,
      "next_cursor": null
    }
  }
}

说明:last_message 不触发自动已读。最后消息已撤回时,接口继续返回原消息编号、方向、类型和时间,正文返回空对象 {},客户端可展示“消息已撤回”;撤回消息不计入 unread_count,也不参与已读回执。last_message_no 等旧摘要字段继续保留,值与完整 last_message 对应。