一、概述

布卡云为开发者提音视频相关功能的接入,合作方在经过授权之后,可以通过WEB、H5、Android SDK和iOS SDK等方式快速完成直播功能的接入。

二、介绍

权限

布卡目前支持老师、学生、助教三种权限

进入房间的验证方式

布卡目前支持不验证、固定密码验证、白名单验证和回调合作方服务器接口验证

不验证

该种验证方式适合免费的课程或活动,无需任何东西,可以匿名进入房间

密码验证(固定密码)

该种验证方式适合免费的私有课程或活动,需要凭密码进入房间

白名单验证

该种验证方式适合部分付费课程或活动,需要登录在白名单中的账号进入房间

回调验证

该种验证方式适合对安全要求较高的课程,需要回调合作方接口进行验证,通过后才可进入房间

验证维度

布卡每个房间每个权限支持一种验证方式

三、约定&术语

常见基本约定及平台术语见下表:

传输协议 HTTP
提交方式 POST
字符编码 UTF-8
环境网关 http://a.common.buka.tv/buka/www/
user_cipher 合作方身份的标识, 由布卡云平台分配
user_key 合作方私钥, 由布卡云平台分配
服务端API 包括4个API,合作方可通过API调用实现创建房间等

四、接口规范

公共请求参数:

输入参数 类型 描述
user_cipher string 合作方唯一标识
sign string 根据user_key和请求参数生成的签名

公共错误返回参数:

返回参数 类型 示例/默认值 描述
errormsg string 参数错误 错误原因描述
errorcode int 2 错误码

五、Sign生成规则

布卡云每个接口除了传递业务参数外,还有一个用于校验的sign参数。具体规则如下

  1. 1. 单业务参数格式:参数名=参数值(参数值首尾不能包含空格)的格式
  2. 2. 多个业务参数的组成:参数1=参数值1&参数名2=参数值2...&参数名N=参数值N的规则进行拼接。所有参数按首字符字典顺序 (ASCII值大小)升序排序。 若遇到相同首字符,则判断第二个字符。以此类推。最后得出的字符串再相互联接。
  3. 3. 之后把user_key拼接在最后进行md5得出它的sign值。

六、服务端API接口调用

创建房间:

【功能描述】

创建房间

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/room/add.do

【请求参数】

参数名 类型 内容 备注 校验
user_cipher String 密钥 联系布卡客服获取 不能为空
teacher_phone_num String 主讲手机号 可以不填,不填则自己为主讲
teacher_user_name String 主讲账号,主讲手机号为空时有效 可以不填,不填则自己为主讲
name String 房间名称 用于显示 不能为空
description String 房间描述 可以为空
type int 房间类型 1、互动模式 3、直播模式 可以为空,默认为1
encryption int 加密类型 0、公开 1、密码验证 2、白名单验证 3、回调验证 可以为空,默认为0
role_encryption String 不同权限加密类型 详细见下面备注 可以为空
teacher_phone_num String 主讲手机号 可以不填,不填则自己为主讲
password String 房间密码 密码验证方式有效 不能为空
callback_url String 回调地址 回调验证方式有效 不能为空

role_encryption说明:仅在某种权限需要不同的验证方式进入房间的时候使用,比如默认验证方式为0即随意进入房间,但是老师需要凭密码进入时通过该字段添加规则,json格式:[{“encryption”:0,”role”:1},{“encryption”:1,”role”:1,”password”:”123456”},{“encryption”:2,”role”:1},{“encryption”:3,”role”:1,”callback”:”http://a.common.buka.tv/buka/www/room/callback.do”}]role为角色ID(1、老师2、学生3、助教)encryption为该角色的验证方式(参数同encryption)

创建用户:

【功能描述】

创建用户

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/user/create.do

【请求参数】

参数名 类型 内容 备注 校验
user_cipher String 密钥 联系布卡客服获取 不能为空
user_name String 账号 必填
nickname String 昵称 必填
password String 登录密码 不能为空

更新房间:

【功能描述】

更新房间

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/room/update.do

【请求参数】

参数名 类型 内容 备注 校验
room_id int 房间id 创建房间时返回 不能为空
user_cipher String 密钥 联系布卡客服获取 不能为空
name String 房间名称 用于显示 不能为空
description String 房间描述 可以为空
type int 房间类型 1、互动模式 3、直播模式 可以为空,默认为1
encryption int 加密类型 0、公开 1、密码验证 2、白名单验证 3、回调验证 可以为空,默认为0
password String 房间密码 密码验证方式有效 不能为空
callback_url String 回调地址 回调验证方式有效 不能为空

删除房间:

【功能描述】

删除房间

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/room/delete.do

【请求参数】

参数名 类型 内容 备注 校验
room_id int 房间id 创建房间时返回 不能为空
user_cipher String 密钥 联系布卡客服获取 不能为空

查询房间:

【功能描述】

查询房间

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/room/info.do

【请求参数】

参数名 类型 内容 备注 校验
room_id int 房间id 创建房间时返回 不能为空
user_cipher String 密钥 联系布卡客服获取 不能为空

查询房间列表:

【功能描述】

查询房间列表

【请求类型】

POST

【请求地址】

http://a.common.buka.tv/buka/www/room/select.do

【请求参数】

参数名 类型 内容 备注 校验
page_size int 每页获取的条数 默认值100,最大值不能超过1000 可以为空
page int 页数 默认值1 可以为空
user_cipher String 机构密钥 联系布卡客服获取 不能为空

回调接口:

【功能描述】

需要回调验证的房间回调用预留的回调接口验证登录的合法性

【请求类型】

POST

【请求地址】

创建房间时记录

【请求参数】

参数名 类型 内容 备注 校验
token String 验证字段 进入房间的URL或者调起客户端所用的URL上必须带该参数 不能为空
role String 角色字段1、老师 2、学生 3、助教 进入房间的URL或者调起客户端所用的URL上必须带该参数 不能为空
login_id String 用户唯一标识 进入房间的URL或者调起客户端所用的URL上必须带该参数 不能为空
room_id String 房间ID 进入房间的URL或者调起客户端所用的URL上必须带该参数 不能为空

七、进入房间模式

方式1: 合作方网站调起网页直播教室进入房间

【功能描述】

布卡云提供了一个web进入房间的方式

【使用方式】

http://live.buka.tv/房间别名

【备注】

房间别名为创建房间返回的room_alias字段

方式2: 下载客户端进入房间

【功能描述】

布卡云提供了一个客户端进入房间的方式

【使用方式】

http://download.buka.tv下载客户端登录输入别名进入

【备注】

房间别名为创建房间返回的room_alias字段

附录1:功能介绍

功能 Windows     Mac     Android iPhone OS     Web    
进入房间
播放音频
播放视频
发布音频 ×
发布视频 ×
共享窗口 × × ×
多媒体文件 × × ×
全文档支持
邀请发言 ×
申请发言 ×
禁言 ×
踢人 ×
成员列表
发消息
收消息
定制开发
开放SDK × ×
测试Demo × ×