快速接入
引入 SDK
其中 URL path 中 dist 后为 JSSDK 版本号
初始化 SDK
SDK 初始化参数说明
参数 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
app_key | String | 微吼直播开放平台应用 key | 是 | 点击获取 AppKey |
signedat | String | 签名时的时间戳(精确 到秒) | 是 | 当前系统时间,五分钟内有效 |
sign | String | 本次请求签名 | 是 | 签名算法 |
roomid | String | 微吼直播活动 ID | 是 | 创建活动接口 |
account | String | 用户 ID | 是 | 此字段指的是第三方账号 ID,当 观看端为 SDK\嵌入页等多端混用场景 下,且多端需要维护统一的第三方观众用户或 email 时,可传递此参数。 注 1:第三方账号 ID,可通过 创建第三方用户接口 创建。 注 2:third_user_id 和 email 一起使用时,需要客户维护两者的唯一对应关系,否则会触发“邮箱已被他人使用”错误 |
username | String | 用户昵称 | 是 | 用户昵称字段长度限制为 50 个字符 |
videoContent | String | 播放器 Dom id | 是 | 如: #video-content |
docContent | String | 文档区域 Dom id | 是 | 如:#doc-area |
questionarieContainer | String | 问卷容器 Dom id | 否 | 如果需要问卷功能 必填,如:#question-id |
examConfig | Object | need:需要快问快答能力, need: true,container:快问快答 dom id,如:#examWrap | 否 | 3.6.0 及以上版本支持 |
sign_type | Number | 验签规则切换 | 否 | 默认:0。 0: MD5 1:RSA |
String | 用户 Email | 否 | 注:如存在需参与验签, account 备用字段,用于区分用户 | |
plugins | Array | 微吼直播功能列表 | 否 | 如: [ 'chat', 'player', 'doc','interactTools'],3.5.1 以上版本不需要此参数 |
x5_video_fullscreen | Boolean | 启用腾讯H 5 全屏方式 | 否 | 默认:false。 true 开启 ,false 关闭 |
record_id | String | 回放 id | 否 | 设置房间下的回放 id 优先播放此回放 即使房间正在直播 |
错误码
签名说明
v3.1.0 版本开始支持两种验签规则 分别为 MD5 和 RSA 两种方式。
对应初始化 JSSDK 时,需要根据不同规则赋值 sign_type 来驱动 JSSDK 使用
签名方式一 (MD5 签名方式)
参与签名参数
字段名称 | 字段说明 | 备注 |
---|---|---|
roomid | 微吼直播 活动 ID | |
account | 用户账号 | |
username | 用户昵称 | |
app_key | 微吼直播 开放平台用户应用 Key | 点击获取 AppKey |
signedat | 签名时的时间戳(精确到秒) | 系统当前时间戳用于验签 |
签名算法规则
对接使用时,请不要将 secret_key 暴露在前端,demo 中仅为演示。
| -------- | --------------------------------------------- | --------------------------------------------------------- | --- |
| 1 | 按参数名升序排列 | |
| 2 | 将参与签名的参数 以 Key + Value 形式顺序拼接 | |
| 3 | 在参数拼接完成后的字符串首尾各加上 secret_key | 点击获取 secret_key |
| 4 | 将第三步的得到的字符串进行 md5 加密得到 Sign | | |
签名生成示例代码 PHP
签名生成示例代码 Java
安全说明
签名方式二 (RSA 签名方式)
参与签名参数
字段名称 | 字段说明 | 备注 |
---|---|---|
roomid | 微吼直播 活动 ID | |
account | 用户账号 | |
username | 用户昵称 | |
app_key | 微吼直播 开放平台用户应用 Key | 点击获取 AppKey |
signedat | 签名时的时间戳(精确到秒) | 系统当前时间戳用于验签 |
签名算法规则
| -------- | -------------------------------------------------------------- | ---------------------------------------------- | --- |
| 1 | 按参数名升序排列 | |
| 2 | 将参与签名的参数 以 Key + Value 形式顺序拼接 | |
| 3 | 将第二步的得到的字符串进行 md5 加密计算 | |
| 4 | 用私钥将第三步的 md5 结果,进行 RSA 签名计算 | 获取私钥 |
| 5 | 将第四步中的结果,进行 base64url_encode 编码,结果作为 sign 值 | | |
签名生成示例代码 PHP
require './vendor/autoload.php';
use phpseclib\Crypt\RSA;
/**
* base64url_encode
* @param $data
* @return string
*/
function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
/**
* base64url_decode
* @param $data
* @return bool|string
*/
function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
//应用信息
$app_key = 'user_app_key';
$rsa_private_key = '';
//参与签名数据
$params = [
// === 公共参数 ===
"app_key" => $app_key,
"signed_at" => '1657892327',
// === 业务接口参数 ===
"roomid" => "123456",
"account" => "123456",
"username"=> "zhangsan",
];
// 按参数名升序排列
ksort($params);
// 将键值组合
array_walk($params, function (&$value, $key) {
$value = $key . $value;
});
//加密
$rsa = new RSA();
$rsa->loadKey($rsa_private_key);
$rsa->setSignatureMode(RSA::ENCRYPTION_PKCS1);
$rsa->setHash('md5');
$signString = md5(implode('', $params));
$sign = base64url_encode($rsa->sign($signString));
浏览器兼容性
浏览器 | 版本 | 备注 |
---|---|---|
Chrome | 74 版本及以上 | |
edge | 84 版本及以上 | |
safari | 12 版本及以上 | |
FireFox | 79 版本及以上 | |
微信内置浏览器 | 全版本 | |
360 急速浏览器 | 全版本 | 请使用 Chromium 内核 |
微信小程序 | 不支持 | 微信小程序由于域名校验严格,推荐使用标品 H5 页面嵌入开发 |
其他手机浏览器 | 绝大部分支持 | 如遇问题请联系商务或邮件我们 |
修改于 2025-05-27 12:18:50