与腾讯云后台通讯
您的服务器与腾讯云服务器的信息同步可以通过两种方式组合实现:
API 调用:腾讯云提供了直播相关的 API 接口,包括状态查询和状态管理等功能,供您的后台服务器调用。
消息通知:腾讯云在直播流状态变更、录制文件生成等一系列事件发生时,能够以事件消息(JSON)的形式主动通知您的后台服务器,只需要您在腾讯云注册接收事件通知的回调 URL 即可实现。
API 调用
腾讯云提供了直播相关的 API 接口,包括状态查询和状态管理等功能,供您的后台服务器调用,详情请参见 云直播 API 概览 文档。 调用方法
在您的服务端采用 HTTP 协议的 GET 请求方式(即调用参数直接拼接在 URL 中)进行调用即可,详细的调用方法在每个 API 的说明文档中都有示例参考。
安全机制
由于对 API 的调用采用的是普通的 HTTP 协议(出于性能考虑),这就需要一套行之有效的办法来确保您的服务器与腾讯云后台之间的通讯安全。
所有直播码相关的云端 API 都采用了同一种安全检查机制,t + sign 校验:
t(过期时间):如果一个 API 请求或者通知中的 t 值所规定的时间已经过期,则可以判定这个请求或者通知为无效的,这样做可以防止网络重放攻击。t 的格式为 UNIX 时间戳,即从1970年01月01日(UTC/GMT 的午夜)开始所经过的秒数。
sign(安全签名):sign = MD5(key + t),即把加密 key 和 t 进行字符串拼接后,计算一下 md5 值。这里的 key 即 CGI 调用 key,您在腾讯云直播管理控制台 域名管理 中可以进行设置,以推流配置为例步骤如下: 1.1 进入 域名管理 单击推流域名后面的管理 。 1.2 选择推流配置,查看鉴权配置标签,单击编辑进行配置。
说明:
若您需要对播放域名进行鉴权配置,您可以在 域名管理 选择播放域名或单击后面的管理,进入播放域名详情页,选择访问控制,查看鉴权配置标签,单击编辑,进行配置。 安全原理
由于 MD5 是不可逆的 HASH 算法,所以只要确保 KEY 不泄露,即使攻击者拿到很多对 t 和 sign 也无法反算出 KEY 值,进而无法进行伪装攻击。
计算示例
例如,我们现在的时间是2021-07-21 11:46:00,我们希望有效期是1分钟,也就是2021-07-21 11:47:00以后再收到携带这个 t 的请求或者通知即判定为非法的:
t = "2021-07-21 11:47:00" = 1626839220
假设我们的 key 是 5d41402abc4b2a76b9719d911017c592,那么我们计算的签名结果就是:
sign = MD5(5d41402abc4b2a76b9719d911017c5921626839220)= 5ee8ca6c28cbe415b40352969cdf8249
错误码
HTTP 错误
|
| | 接口为了安全考虑开启了校验,若使用浏览器验证发现该错误,可检查下 cookie 里是否含有 skey。 |
| | |
接口通用返回错误
接口前端接入返回错误信息
|
| |
| |
| 鉴权成功,但是超过了 URL 有效期,参见 安全机制。 |
接口后端查询返回错误码
|
| | |
| user is not registered for statapi | 用户没有注册 statapi,请提工单到后台开通。 |
| user service for statapi was stopped | |
| | 内部系统错误,属于系统异常,建议通过 工单 反馈到服务商。 |
| invalid request/request frequency exceeds limit | 无效的请求,一般是超过了频控次数,如果频率不能满足业务需要,可申请增加次数。 |
| | 输入参数错误,请检查下输入的参数是否符合接口规范。 |
| | |
| | 后端查询数据成功,但是返回数据为空。例如,某时间段没有播放,此时调用接口 Get_LivePlayStatHistory 就会返回10003。 |
注意:
以上错误码针对本文 API 列表中的 API,不包括 消息事件通知。 消息通知
本页内容是否解决了您的问题?