方案架构图
下图展示了从发起反垃圾请求到处理违规情况的整体方案架构图。其中,“你的业务逻辑”展示了针对审核结果的示例处理策略。你也可以结合自己的业务场景,采取不同策略。
调用时序图
短期房间
长期房间
接入说明
准备工作
开通反垃圾功能
** 易盾控制台获取接入秘钥 **
准备监听uid/token
反垃圾SDK的uid号段预留
建议您预留uid号段提供给音频反垃圾SDK加入音视频房间进行反垃圾服务;
准备反垃圾SDK的uid授权进入房间的token
方案1
一次性token,适用于实际房间最长时长30天内的短期房间
方案2
提供获取最新token的api,适用于实际房间最长时长大于30天的长期房间
提供获取最新有效token的api,供易盾反垃圾token失效时重新加入房间,api设计需参考易盾规范
获取token API 设计规范
接口描述
该接口用于易盾获取房间最新的token等相关信息
接入说明
接入回调方式很简单,只需要联系您的商务在您的业务上配置一个接入地址(即一个http(s)协议接口的URL)。需要您的接口支持http协议,支持POST方法,传输数据编码采用utf-8。 为了保证顺利检测直播,客户需保证接口性能稳定。
请求参数
参数名称 | 类型 | 是否必传 | 描述 |
---|---|---|---|
secretId | String | Y | 产品秘钥id,由易盾反垃圾云服务分配,产品标识 |
signature | String | Y | 请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权 |
url | String | Y | 直播提交检测时的原始url |
secretId,businessId,signature参数用来给数据接收接口做签名鉴权用
响应结果
响应字段如下,响应通用字段已省略,详细见 响应通用字段 :
result 数据结构
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | Y | 直播token |
uid | String | N | 直播uid |
请求示例
{
"secretId": "your_secret_id",
"businessId": "your_business_id",
"signature": "signature",
"url": "******"
}
响应示例
{
"code": 200,
"msg": "ok",
"result": {
"token": "your_token",
"uid": "your_uid"
}
}
方案3
针对公开房间,无需token,提交url中token可不传
准备反垃圾结果接收地址(callbackURL)
用于接收反垃圾异常检测结果,离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。
提交反垃圾检测
完成鉴权流程后,您需要将反垃圾SDK所需加入的频道名(channelName)、token以及反垃圾SDK对应的uid按如下格式生成http请求,并提交检测接口,不同场景的提交检测地址有所不同:
场景1:短期房间,准备允许短期周期内一直有效的监听token 提交URL:agora://uid:token@appid/channelName
场景2:长期房间,已提供获取最新有效token的api,供易盾token失效时重新加入房间 提交URL:agora://appid/channelName
场景3:公开房间,无需传入token 提交URL:agora://uid@appid/channelName
接口地址
http://as.dun.163.com/v2/livewallsolution/submit
接口描述
提交直播音视频的URL进行反垃圾内容检测
请求参数
公共参数已省略,详细见 请求公共参数
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
url | String | Y | 512 | 场景1:短期房间,准备允许短期周期内一直有效的监听token,提交URL:agora://uid:token@appid/channelName;场景2:长期房间,已提供获取最新有效token的api,供易盾token失效时重新加入房间,提交URL:agora://appid/channelName,请注意如token部分含有特殊字符需要做URLEncode;场景3:公开房间,无需传入token,提交URL:agora://uid@appid/channelName |
dataId | String | Y | 128 | 直播流唯一标识 |
version | String | Y | 4 | 接口版本号,可选值 v2.1 |
detectType | Number | N | 1 | 机器过检类型,0:直播视频与直播音频同时过检,1:仅过检直播视频,不填写默认为0,请注意 |
accountLevel | String | N | 10 | 账号级别/主播级别 |
accountName | String | N | 30 | 账号名称/主播名称 |
roomNo | String | N | 20 | 主播房间号 |
account | String | N | 20 | 账号ID/主播ID |
age | String | N | 64 | 主播年龄 |
labourUnion | String | N | 256 | 主播所属工会 |
operationManager | String | N | 128 | 运营管理者 |
callback | String | N | 512 | 数据回调参数,产品根据业务情况自行设计,当获取离线检测结果时,易盾反垃圾云服务会返回该字段 |
scFrequency | Number | N | 4 | 截图检测频率,默认5秒截图检测一次,可设置范围为0.5~60秒 |
callbackUrl | String | N | 256 | 离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。 |
uniqueKey | String | N | 64 | 客户个性化直播流唯一性标识,传入后,将以此值作为重复检测依据,若不传,默认以URL作为查重依据 |
响应结果
响应字段如下,响应通用字段已省略,详细见响应通用字段:
result 数据结构
参数名称 | 类型 | 描述 |
---|---|---|
taskId | String | 本次请求数据标识,可以根据该标识查询数据最新结果 |
status | Boolean | true表示提交成功,false表示提交失败 |
响应示例
{
"code": 200,
"msg": "ok",
"result": {
"taskId": "******",
"status": "******"
}
}
接收审核结果
- 主动接收结果(推荐,结果获取更实时):
通过在提交检测接口提交callbackURL,主动获取检测结果,主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。
- 被动接收结果:
您也可以通过定时轮询结果获取接口(https://support.dun.163.com/documents/2018082201?docId=274670761104560128)的方式获得结果;
停止音视频反垃圾
房间开始反垃圾监听后,易盾不会主动停止检测,请在如下场景时调用停止检测接口:
- 当房间结束时;
- 某一时刻,当前音频房间内不再需要音频反垃圾检测服务时;
停止检测接口:
接口地址
https://as.dun.163.com/v1/livewallsolution/feedback
接口描述
实时更新视频直播流相关信息。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。
接口请求频率
小于10s/50次,请求频率过快服务器会拒绝处理。
请求参数
公共参数已省略,详细见 请求公共参数
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
realTimeInfoList | String | Y | - | 直播实时信息列表(JSON数组,最多100条) |
realTimeInfoList数组结构
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
taskId | String | Y | - | 直播taskId(长度定值为32) |
status | Number | Y | 3 | 100:停止检测 |
响应结果
result 数组结构
参数名称 | 类型 | 描述 |
---|---|---|
taskId | String | 直播taskId |
result | Number | 请求结果,0成功,1失败,2数据不存在 |
响应示例
{
"code": 200,
"msg": "ok",
"result": [{
"taskId": "****",
"result": 0
}]
}