保利威文档中心

帮助中心

查询频道聊天记录

更新时间:2024-12-11 15:24:57

接口描述

1、通过频道号,查询一段时间内的聊天记录
2、接口支持https协议

接口URL

http://api.polyv.net/live/v3/channel/chat/get-history-page

在线API调用

请求方式

GET

接口约束

1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看

2、时间格式为yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss。如未提交具体时间,只提交了日期,开始时间默认为日期当天的 00:00:00,结束时间为日期当天的23:59:59

请求参数描述

参数名 必选 类型 说明
appId true String 账号appId【详见获取密钥
timestamp true Long 当前13位毫秒级时间戳,3分钟内有效
sign true String 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则
startDay true String 聊天记录的开始时间
格式为yyyy-MM-dd,例如:2021-03-01
或者格式为yyyy-MM-dd HH:mm:ss,例如:2021-03-01 16:30:12
endDay true String 聊天记录的结束时间,要求同上
channelId true String 频道号
page false Integer 获取第几页聊天记录,默认为1
pageSize false Integer 每页记录数,默认为1000,最大为1000,大于1000将不会返回contents数据
userType false String 用户类型,可以选择多个类型,用英文逗号隔开
slice:云课堂学员
teacher:讲师
guest:嘉宾
manager:管理员
assistant:助教
viewer:特邀观众
monitor:场监
attendee:研讨会参与者
student:普通直播观众
status false String 聊天记录审核状态,默认pass:已审核
pass:已审核
censor:审核中和删除
source false String 类型,不填默认公聊
extend:管理员私聊
roomId false String 如果有房间号,需要传入房间号,默认不传
hasTotal false String 是否返回当前查询总数,Y:是,N:否,默认为N
注:此参数可能会影响接口响应性能,若非强烈需求,建议不要传此参数,可以根据返回结果中的 contents 数组长度来判断是否还有下一页

示例

http://api.polyv.net/live/v3/channel/chat/get-history-page?startDay=2020-03-10&appId=frlr1z1zn3&endDay=2021-03-10&sign=FD60256504E55BC4986B1BF9D207A997&pageSize=20&page=1&userType=&source=&channelId=1965681&roomId=&timestamp=1635478961187&status=

响应参数描述

参数名 类型 说明
code Integer 响应状态码,200为成功返回,非200为失败【详见全局错误说明
status String 响应状态文本信息
message String 响应描述信息,当code为400或者500的时候,辅助描述错误原因
data Array 聊天信息数组 【详见data字段说明

data字段说明

参数名 类型 说明
pageSize Integer 每页数据大小
pageNumber Integer 当前的页数
totalItems Integer 总的条数, 仅当hasTotal为Y时有值,否则一直为0。
totalPages Integer 总页数,约束同上
contents Object 查询的结果列表【详见Contents参数描述

contents字段说明

参数名 类型 说明
id String 聊天消息id
accountId String 账号id
clientIP String 用户ip(为了数据安全性,该数据将不再返回)
content String 聊天内容,当消息为图片类型时,content为json字符串,下面说明
event String 事件,具体参考聊天室SDK
image String 图片消息的图片地址
msgType String 消息类型
redpaper:红包消息
chatImg:图片消息
custom:自定义消息(通过socket发送的自定义消息)
reward:打赏消息
customerMessage:自定义消息(通过http接口发送的自定义消息)
为空:普通聊天消息
quote String 引用
sessionId String 场次号
roomId String 房间号
channelId String 频道号
time Long 发送消息时的时间戳
userType String 用户类型
slice:云课堂学员
teacher:讲师
guest:嘉宾
manager:管理员
assistant:助教
viewer:特邀观众
monitor:场监
attendee:研讨会参与者
student:普通直播观众
status String 审核状态
pass:已审核
censor:审核中
delete:删除
sourceType String 消息来源
public:群聊
extend:管理员私聊
user Object 聊天信息数组 【详见user字段说明

content为json格式时说明

根据msgType区分消息类型
msgTyperedpaper时,表示红包:
参数名 类型 说明
content String 红包名称
msgSource String 消息类型
number Number 红包数量
redCacheId String 缓存的红包id
redpackId String 红包id
totalAmount String 红包总金额
type String 红包类型,normal为普通红包,rain为红包雨,password口令红包,official_normal开播端-普通红包
msgTypereward时,表示打赏:
参数名 类型 说明
userId String 用户ID
goodNum Number 打赏礼物数量
unick String 用户昵称
gimg String 礼物图片地址
rewardContent String 打赏内容
uimg String 用户头像
rewardUser Object 打赏者 【详见rewardUser字段说明
msgTypechatImg时,表示图片:
参数名 类型 说明
id String 图片id
msgSource String 消息类型
status String 图片上传状态,upLoadingSuccess表示上传成功
uploadImgUrl String 图片上传成功后的地址,多个地址用逗号隔开
size Object 图片尺寸,width表示图片宽度,height表示图片高度
msgTypecustom时,表示自定义消息:
参数名 类型 说明
msgSource String 消息类型
EVENT String 自定义消息事件类型
version String 自定义消息版本
emitMode Number 自定义消息广播方式
tip Number 自定义消息提示
data Object 自定义消息体

user字段说明

参数名 类型 说明
actor String 角色
banned Boolean 是否禁言
channelId String 频道号
clientIp String 用户ip
nickname String 观众昵称
pic String 观众头像
roomId String 房间号
sessionId String 场次号
uid String socketId
userId String 用户唯一标示
userSource String 观众来源
userType String 用户类型
slice:云课堂学员
teacher:讲师
guest:嘉宾
manager:管理员
assistant:助教
viewer:特邀观众
monitor:场监
attendee:研讨会参与者
student:普通直播观众
param4 String 用户自定义字段
param5 String 用户自定义字段

rewardUser字段说明

参数名 类型 说明
deviceType String 设备类型
nick String 观众昵称
uid String socketId
clientIp String 用户ip
banned Boolean 是否禁言
pic String 用户头像
userType String 用户类型
slice:云课堂学员
teacher:讲师
guest:嘉宾
manager:管理员
assistant:助教
viewer:特邀观众
monitor:场监
attendee:研讨会参与者
student:普通直播观众
customize Number 是否为定制礼物 0:否 1:是
userId String 用户id
channelId String 频道号
roomId String 房间号
scene String 场景
alone:活动直播
ppt:三分屏
topclass:大班课

Java请求示例

快速接入基础代码请下载相关依赖源码点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下载文件中。

强烈建议您使用直播Java SDK完成API的功能对接,直播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。

    private static final Logger log = LoggerFactory.getLogger(ChatMessageTest.class);

    /**
     * 查询频道聊天记录
     * @throws IOException
     */
    @Test
    public void testGetMessageList() throws IOException, NoSuchAlgorithmException {
        //公共参数,填写自己的实际参数
        String appId = super.appId;
        String appSecret = super.appSecret;
        String timestamp = String.valueOf(System.currentTimeMillis());
        
        //业务参数
        String url = "http://api.polyv.net/live/v3/channel/chat/get-history-page";
        String startDay = "2020-03-10";
        String endDay = "2021-03-10";
        String channelId = "1965681";
        Integer page = 1;
        Integer pageSize = 20;
        String userType = "";
        String status = "";
        String source = "";
        String roomId = "";
        
        //http 调用逻辑
        Map<String,String> requestMap = new HashMap<>();
        requestMap.put("appId", appId);
        requestMap.put("timestamp",timestamp);
        requestMap.put("startDay",startDay);
        requestMap.put("endDay",endDay);
        requestMap.put("channelId",channelId);
        requestMap.put("page",page.toString());
        requestMap.put("pageSize",pageSize.toString());
        requestMap.put("userType",userType);
        requestMap.put("status",status);
        requestMap.put("source",source);
        requestMap.put("roomId",roomId);
        requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
        String response = HttpUtil.get(url, requestMap);
        log.info("测试查询频道聊天记录接口返回值:{}",response);
    }

响应示例

系统全局错误说明详见全局错误说明

成功示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageNumber": 1,
        "pageSize": 20,
        "totalPages": 0,
        "totalItems": 0,
        "contents": [
            {
                "id": "874e2850-12bc-11eb-963f-578bb7bc5db5",
                "accountId": "",
                "clientIP": "",
                "content": "hello 大家好",
                "event": null,
                "image": "",
                "msgType": null,
                "quote": null,
                "sessionId": "fs9v9y4nxf",
                "roomId": "1965681",
                "channelId": 1965681,
                "time": 1603188649810,
                "userType": "",
                "status": "",
                "sourceType": "public",
                "user": {
                    "actor": null,
                    "banned": false,
                    "channelId": 1965681,
                    "clientIp": "",
                    "nickname": "thomas",
                    "pic": "http://s1.videocc.net/default-img/avatar/teacher.png",
                    "roomId": "1965681",
                    "sessionId": null,
                    "uid": "",
                    "userId": "1965681_reboot_0",
                    "userSource": null,
                    "userType": ""
                }
            }
        ]
    }
}

异常示例

{
    "code": 400,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}
联系客服,在线咨询