快速开始
引入微吼直播SAAS jssdk
<script src="//cnstatic01.e.vhall.com/jssdk/dist/3.0.7/VhallSDK.js"></script>
同时支持 http, https 协议
初始化 微吼SDK
var vhallSDK = new VhallSDK({
app_key: '123123asdasdcas34dfsJsadXV', // APP Key
signedat: getQueryString('signedat'), // 用户签名时间
sign: '123123asdasdcas34dfsJsadXV', // 服务器签名
roomid: 房间id, // 直播,回放,点播等房间ID
account: 12312, // 用户参会id
email: getQueryString('email'), // 可选 - 用户邮箱
username: vhall, // 用户昵称
videoContent: '#video', // 播放器dom 节点ID
docContent: '#docWrap', // 文档展示dom 节点id
questionarieContainer: '#questionWrap', // 问卷dom 容器ID
plugins: [ 'chat', 'doc', 'player', 'interactTools'], // SDk 功能列表 ,必须全选
x5_video_fullscreen: true, // 非必填,启用腾讯H5全屏方式 true开启 false关闭 ,默认false
x5_video_type: true // //非必填,启用腾讯H5同层播放器 true开启 false关闭 ,默认false
})
SDK 初始化参数说明
参数 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
app_key | String | 微吼直播开放平台应用key | 是 | 点击获取AppKey |
signedat | String | 微吼直播JSSDK签名时间戳 | 是 | |
sign | String | 微吼直播JSSDK签名时间戳 | 是 | 签名生成算法见下方 |
roomid | Number、String | 微吼直播活动ID | 是 | |
account | Number | 用户ID | 是 | |
String | 用户Email | 否 | ||
username | String | 用户昵称 | 是 | |
videoContent | String | 播放器Dom id | 是 | 例如: #video-content |
docContent | String | 文档区域Dom id | 是 | 例如: #doc-area |
questionarieContainer | String | 问卷容器Dom id | 是 | 如: #question-id |
plugins | Array | 微吼直播功能列表 | 否 | 如: [ 'chat', 'player', 'doc','interactTools'] |
x5_video_fullscreen | Boolean | 启用腾讯H5全屏方式 | 否 | 默认:false。 true开启 ,false关闭 |
x5_video_type | Boolean | 启用腾讯H5同层播放器 | 否 | 默认:false。 true开启 ,false关闭 |
SDK签名(sign)说明
Sign 是微吼直播JSSDK,所有功能必须参数。 作为用户使用微吼直播SDK的唯一合法凭证。 签名有效期为有一个小时。
参与签名参数
字段名称 | 字段说明 | 备注 |
---|---|---|
roomid | 微吼直播 活动ID | |
account | 用户账号 | |
username | 用户昵称 | |
app_key | 微吼直播 开放平台用户应用Key | 点击获取AppKey |
secret_key | 微吼直播 开放平台用户应用secret_key | 点击获取AppKey |
signedat | 签名调用时的当前时间戳(精确到秒) | 示例代码: |
签名算法规则
规则序号 | 规则 | 备注 |
---|---|---|
1 | 按参数名升序排列 | |
2 | 将参与签名的参数 以 Key + Value 形式顺序拼接 | |
3 | 在参数拼接完成后的字符串首尾各加上secret_key | |
4 | 将第三步的得到的字符串进行 md5 加密得到Sign |
签名生成示例代码 PHP
<?php
$secret_key = "f145b675f441cc00dd3e55746a0f4780";
$params = [
"roomid"=> "123456789",
"account"=> "12345",
"username"=> "zhangsan",
"app_key"=> "3eb72619af748d73f7fda1e6b0c692a9",
"signedat"=> "1484620708"
];
// 按参数名升序排列
ksort($params);
// 将键值组合
array_walk($params,function(&$value,$key){
$value = $key . $value;
});
// 拼接,在首尾各加上$secret_key,计算MD5值
$sign = md5($secret_key . implode('',$params) . $secret_key);
// 结果形如
$sign=md5("f145b675f441cc00dd3e55746a0f4780account12345app_key3eb72619af748d73f7fda1e6b0c692a9emailzhangsan@vhall.comroomid123456789signedat1484620708usernamezhangsanf145b675f441cc00dd3e55746a0f4780");
// 计算结果
// $sign = '92eec52c58b9bddc0ba663c75a3c1f7f';
签名生成示例代码 Java
String secret_key = "f145b675f441cc00dd3e55746a0f4780";
String roomid = "123456789";
String account = "12345";
String username = "zhangsan";
String app_key = "3eb72619af748d73f7fda1e6b0c692a9";
String signedat = "1484620708";
String email = "zhangsan@vhall.com";
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("roomid",roomid);
paramMap.put("account",account);
paramMap.put("username",username);
paramMap.put("app_key",app_key);
paramMap.put("signedat",signedat);
paramMap.put("email",email);
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(secret_key);
for (String key : keyArray) {
stringBuilder.append(key).append(paramMap.get(key));
}
stringBuilder.append(secret_key);
String signSource = stringBuilder.toString();
MessageDigest md = MessageDigest.getInstance("MD5");//获取MD5实例
md.update(signSource.getBytes());//此处传入要加密的byte类型值
byte[] result = md.digest();//此处得到的是md5加密后的byte类型值
StringBuilder sb = new StringBuilder(32);
int i;
for (int offset = 0; offset < result.length; offset++) {//做相应的转化(十六进制)
i = result[offset];
if (i < 0) i += 256;
if (i < 16) sb.append("0");
sb.append(Integer.toHexString(i));
}
String str_md5 = sb.toString();
System.out.println(str_md5);
安全说明
MD5(Message Digest Algorithm )为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。该算法为单向不可逆算法。
为增加签名安全系数, 微吼直播参与签名字符串长度为130+,并为sign 设置了1小时时间时效,靠碰撞检测得出相同sign 的难度为130+的阶乘(极其耗费算力)。请各位开放平台用户放心使用。
浏览器兼容性
浏览器 | 版本 | 备注 | |
---|---|---|---|
Chrome | 74版本及以上 | ||
safari | 12版本及以上 | ||
FireFox | 79版本及以上 | ||
edge | 84 版本及以上 | ||
IE | 10 版本及以上 | 需在项目中首先引入//cnstatic01.e.vhall.com/vhall-new-saas/static/polyfill.js?v=20201111 兼容IE10及以上版本 |
|
360 急速浏览器 | 全版本 | ||
手Q 内部浏览器 | 全版本 | ||
微信内置浏览器 | 全版本 | ||
其他手机浏览器 | 绝大部分支持 | 如遇问题请联系商务或邮件我们 |
其他未涉及浏览器可能出现兼容性问题。 问题反馈联系客服