这是本文档旧的修订版!


直播间集成

直播聊天室提供REST API形式的管理接口,下面是关于服务端直播聊天室的管理功能说明。

直播聊天室是基于环信聊天室之上构建的功能,一个直播聊天室涉及聊天室、直播聊天室、直播场次三个概念。

聊天室

即环信的聊天室功能,每一个直播聊天室,都唯一对应一个聊天室(反过来不成立)。 直播聊天室复用了对应聊天室的所有资源,包括聊天室的成员列表等。

强烈不建议调用解散聊天室接口。将直播聊天室对应的聊天室解散,这将导致该直播聊天室数据遭到破坏、不完整等异常情况。

关于聊天室REST API,请参考聊天室管理

直播聊天室

维护直播聊天室的ID、标题、描述、封面、进入是否需要密码等信息。

直播场次

直播聊天室是以直播场次为基本单位的。每开始一场新的直播,后台创建一个新的直播场次。

直播场次相关的信息包括该直播场次的ID、主播ID、直播开始时间、直播结束时间、直播状态,以及本场直播的点赞数量,观看人数等统计指标。

直播场次的状态:not_start:未开始;ongoing:正在进行中;completed:已结束,completed表示直播房间正常的直播结束,成员还留在直播聊天室中;closed:已关闭,closed表示强制关闭当前直播场次,成员会被踢出直播聊天室。

新建一个直播场次,之前的直播场次状态必须是completed 或者 closed,否则无法创建。新创建一个直播聊天室的同时,后台会自动创建一个直播场次。

直播聊天室的状态,是指直播聊天室的当前直播场次的状态。

主播

直播聊天室的主播,与该直播聊天室对应聊天室的群主是同一人。除了app管理员之外,只有主播才能创建直播聊天室。可以通过新建主播接口,为一个普通IM用户增加主播这个角色。

一个直播聊天室只能有一个主播,但可以有多个候选主播。候选主播可以不是聊天室的成员。可以通过关联接口,将一个主播与一个直播聊天室关联,关联后主播即成为该直播聊天室的候选主播。

您可以从直播聊天室的关联主播列表中,选择一个主播,通过调用“主播绑定直播聊天室”接口,将其变成聊天室的(正式)主播。

就像群主可以退出聊天室一样,主播也可以退出直播聊天室,但角色保留:他仍然是该直播聊天室的主播。 

REST API

待补充

待补充

名称请求描述
设置直播流地址/{org_name}/{app_name}/liverooms/stream_url待补充
获取某端直播流地址/{org_name}/{app_name}/liverooms/stream_url待补充

设置直播流地址

待补充

HTTP Request

/{org_name}/{app_name}/liverooms/stream_url

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明
不完整不完整

Response Body

参数说明
pc_pullPC端拉流地址
pc_pushPC端推流地址
mobile_pullMOBILE端拉流地址
mobile_pushMOBILE端推流地址

请求示例

curl -X POST -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo"  "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url -d '{"pc_pull":"rtmp://publish3.cdn.ucloud.com.cn/ucloud","pc_push":"rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud","mobile_pull":"rtmp://publish3.cdn.ucloud.com.cn/ucloud","mobile_push":"rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud"}'"

可能返回的结果示例

返回值200,表示设置成功

{
    "action": "post", 
    "application": "e1a09de0-0e03-11e7-ad8e-a1d913615409", 
    "uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url", 
    "entities": [ ], 
    "data": {
        "pc_pull": true, 
        "mobile_push": true, 
        "mobile_pull": true, 
        "pc_push": true
    }, 
    "timestamp": 1494084474885, 
    "duration": 1, 
    "organization": "easemob-demo", 
    "applicationName": "chatdemoui"
}

其他返回值待补充

如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明

使用 Easemob REST API 在线测试


获取某端直播流地址

待补充

HTTP Request

/{org_name}/{app_name}/liverooms/stream_url

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明
不完整不完整

Response Body

参数说明
不完整不完整

请求示例

curl -X GET -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo"  "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url?type=mobile_pull"

可能返回的结果示例

返回值200,表示获取成功

{
    "action": "get", 
    "application": "e1a09de0-0e03-11e7-ad8e-a1d913615409", 
    "params": {
        "type": [
            "mobile_pull"
        ]
    }, 
    "uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url", 
    "entities": [ ], 
    "data": {
        "mobile_pull": "rtmp://publish3.cdn.ucloud.com.cn/ucloud"
    }, 
    "timestamp": 1494084603633, 
    "duration": 1, 
    "organization": "easemob-demo", 
    "applicationName": "chatdemoui", 
    "count": 0
}

其他返回值待补充

如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明

使用 Easemob REST API 在线测试


待补充

名称请求描述
创建直播聊天室/{org_name}/{app_name}/liverooms待补充
修改直播聊天室/{org_name}/{app_name}/liverooms/{liveroomid}待补充
获取直播聊天室详情/{org_name}/{app_name}/liverooms/{liveroomid}待补充
删除直播聊天室/{org_name}/{app_name}/liverooms/{liveroomid}待补充
分页获取直播聊天室列表/{org_name}/{app_name}/liverooms获取全部的直播聊天室列表,不区分直播聊天室状态
分页获取正在直播的直播聊天室列表/{org_name}/{app_name}/liverooms待补充
获取直播聊天室的直播状态/{org_name}/{app_name}/liverooms/${liveroomid}/status待补充
更新直播聊天室的直播状态/{org_name}/{app_name}/liverooms/${liveroomid}/status待补充
新建直播场次/{org_name}/{app_name}/liverooms/${liveroomid}/liveshows待补充
获取appkey下正在直播的直播聊天室列表/{org_name}/{app_name}/liverooms待补充

创建直播聊天室

在创建直播聊天室之前,必须首先设置直播流地址。

HTTP Request

/{org_name}/{app_name}/liverooms

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明
titleString类型,必填
descString类型,必填
anchorString类型,必填
max_usersInteger类型,直播间最大人数
customString类型,用户自定义字段
need_passwordBoolean类型,是否需要设置密码
passwordString类型,密码
cover_picture_urlString类型,房间封面的图片URL
start_timeLong类型,(预计)开始时间
end_timeLong类型,(预计)结束时间

Response Body

参数说明
liveroom_id生成的直播聊天室ID
chatroom_id后台创建的直播聊天室ID

请求示例

curl -X POST -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo"  -d '{"title":"test_liveroom_1","desc":"this is a test live room", "anchor":"z1"}' "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms?status=ongoing"

可能返回的结果示例

返回值200,表示创建成功

{
    "action": "post", 
    "application": "e1a09de0-0e03-11e7-ad8e-a1d913615409", 
    "params": {
        "status": [
            "ongoing"
        ]
    }, 
    "uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms", 
    "entities": [ ], 
    "data": {
        "liveroom_id": "2", 
        "chatroom_id": "15399890518017", 
        "pc_pull_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1", 
        "pc_push_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1", 
        "mobile_pull_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1", 
        "mobile_push_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1"
    }, 
    "timestamp": 1494084880158, 
    "duration": 0, 
    "organization": "easemob-demo", 
    "applicationName": "chatdemoui"
}

其他返回值待补充

如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明

使用 Easemob REST API 在线测试


修改直播聊天室

待补充

HTTP Request

/{org_name}/{app_name}/liverooms/{liveroomid}

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明
max_usersInteger类型, 直播间最大人数
max_usersInteger类型, 直播间最大人数
max_usersInteger类型, 直播间最大人数
max_usersInteger类型, 直播间最大人数
max_usersInteger类型, 直播间最大人数

Response Body

参数说明
不完整不完整

请求示例

curl -X GET -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo"  "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url?type=mobile_pull"

可能返回的结果示例

返回值200,表示获取成功

{
    "action": "get", 
    "application": "e1a09de0-0e03-11e7-ad8e-a1d913615409", 
    "params": {
        "type": [
            "mobile_pull"
        ]
    }, 
    "uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url", 
    "entities": [ ], 
    "data": {
        "mobile_pull": "rtmp://publish3.cdn.ucloud.com.cn/ucloud"
    }, 
    "timestamp": 1494084603633, 
    "duration": 1, 
    "organization": "easemob-demo", 
    "applicationName": "chatdemoui", 
    "count": 0
}

其他返回值待补充

如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明

使用 Easemob REST API 在线测试