网站解决方案-单URL离线结果获取v2.0

2021.10.25 16:27:55

    接口地址

    https://as.dun.163.com/v2/crawler/callback/results


    v1版本离线结果获取说明文档

    接口描述

    异步获取检测结果。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

    接口请求频率

    小于10次/秒,一次请求最多返回50条待回调的数据,请求频率过快服务器会拒绝处理。

    请求参数

    该接口参数与请求公共参数一致,businessId可不传,详细见 请求公共参数

    参数名称 类型 是否必选 最大长度 描述
    version String Y 4 接口版本,当前版本为 v2.0

    响应结果

    响应字段如下,响应通用字段已省略,详细见 响应通用字段

    result 数据结构

    参数名称 类型 描述
    taskId String 数据请求标识,可以根据该标识查询融媒体数据最新结果
    dataId String 调用融媒体检测时传递的dataId字段
    callback String 调用检测时传递的callback字段
    result Number 检测结果, 0:无结果(检测失败);1:正常; 2:异常 ;3:疑似;
    failureReason Number 网站检测失败原因,1:爬虫失败;2:试用量超限;3:业务已关闭;4:爬取内容为空;5:连接失败;6:404网页不存在;7:URL正在爬取,请勿同时重复提交;100:其他原因
    evidences json对象 机审证据信息

    evidences 数据结构

    参数名称 类型 描述
    texts json数组 文本证据信息
    images json数组 图片证据信息
    audios json数组 语音证据信息
    videos json数组 视频证据信息
    files json数组 文档证据信息

    texts 数据结构

    参数名称 类型 描述
    dataId String 提交检测时标识的数据id
    action Number 检测结果,0:通过,1:嫌疑,2:不通过
    labels json数组 分类信息 详细数据与文本在线检测labels数据结构一致
    callback String 调用检测时传递的callback字段

    labels 数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他
    level Number 分类级别,0:通过, 1:嫌疑,2:不通过
    details json对象 其他信息

    details 数据结构

    参数名称 类型 描述
    hint json数组 线索信息,用于定位文本中有问题的部分,辅助人工审核

    images 数据结构

    参数名称 类型 描述
    name String 图片标识
    dataId String 提交检测时标识的数据id
    imageUrl String 图片下载地址
    status Number 图片检测状态码,定义为:0:检测成功,610:图片下载失败,620:图片格式错误,630:其它
    action Number 检测结果,0:通过,1:嫌疑,2:不通过
    labels json数组 分类信息
    callback String 调用检测时传递的callback字段

    labels 数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,900:其他
    level Number 分类级别,0:通过,1:嫌疑,2:不通过
    rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高

    audios 数据结构

    参数名称 类型 描述
    dataId String 提交检测时标识的数据id
    audioUrl String 风险音频的下载地址
    asrStatus Number 音频翻译结果,2:检测中,3:检测完成,4:检测失败
    asrResult Number 音频翻译检测失败原因,1:文件格式错误,2:文件下载失败,3:解析失败,4:音频流不存在
    action Number 检测结果,0:通过,1:嫌疑,2:不通过
    labels json数组 分类信息

    labels 数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂
    level Number 分类级别,0:通过,1:嫌疑,2:不通过
    details json对象 其他信息

    details 数据结构

    参数名称 类型 描述
    hint json数组 线索信息,用于定位文本中有问题的部分,辅助人工审核
    hitType Number 命中检测器类型:10:用户名单 11:IP名单 12:设备名单 30:敏感词 110:IP地区限制 130:声纹检测

    hint 数据结构

    参数名称 类型 描述
    value String 命中的敏感词或者声纹检测的分值
    segments json数组 命中敏感词或者声纹检测的音频时间点

    segments 数据结构

    参数名称 类型 描述
    startTime Number 最近开始时间点,单位毫秒
    endTime Number 最近结束时间点,单位毫秒

    videos 数据结构

    参数名称 类型 描述
    dataId String 提交检测时标识的数据id
    videoUrl String 风险视频的下载地址
    status Number 视频处理状态码,定义为:0:检测成功,110:请求重复,120:参数错误,130:解析错误,140:数据类型错误
    level Number 视频级别信息,分为0:正常,1:不确定,2:确定,其中不确定的建议人工复审
    evidences json对象数组 证据信息数组

    evidences 数据结构

    参数名称 类型 描述
    beginTime Number 证据开始相对时间,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:149000 转换为"00:02:29"
    endTime Number 证据结束相对时间,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:149000 转换为"00:02:29"
    type Number 1:图片,2:视频
    url String 证据信息
    labels json对象数组 证据结果数组

    labels 数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,110:性感;200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,1020:黑屏,1030:挂机
    level Number 级别信息,分为1:不确定,2:确定
    rate Number 分数

    files 数据结构

    参数名称 类型 描述
    dataId String 提交检测时标识的数据id
    fileUrl String 风险文件的下载地址
    result Number 检测结果 0:无结果(检测失败), 1:正常 2:异常 3:嫌疑
    failureReason Number 检测失败原因
    evidences json对象 证据信息数组

    failureReason 说明

    错误码 描述
    1000 文档大小超过上限
    1001 文档格式不支持
    1002 文档下载失败
    2000 文档内容提取失败
    2001 文档内容提取超时
    3000 文档检测失败
    3001 文档文本检测失败
    3002 文档图片检测失败

    evidences 数据结构

    参数名称 类型 描述
    texts json对象数组 文本证据信息
    images json对象数组 图片证据信息

    texts 数据结构

    参数名称 类型 描述
    taskId String 当前分段检测数据标识
    sequence Number 当前文本在原始文档中的分段(5000字符/段)序号
    startText String 每段文本的起始20个字符
    endText String 每段文本的结尾20个字符
    action Number 检测结果,0:通过,1:嫌疑,2:不通过
    labels json对象数组 分类信息 详细数据与文本在线检测labels数据结构一致

    images 数据结构

    参数名称 类型 描述
    taskId String 当前图片检测数据标识
    sequence Number 当前图片在原始文档中的序号
    imageUrl String 图片下载地址
    level Number 分类级别,0:正常,1:不确定,2:确定
    labels json对象数组 分类信息 详细数据与图片在线检测labels数据结构一致

    响应示例

    当获取机器检测离线结果时,输出示例如下:

    {
        "code": 200,
        "msg": "ok",
        "result": [
            {
                "dataId": "10086_",
                "taskId": "15ed9fefe068427cb45724f6f17ee7db",
                "callback": "callback123456789",
                "result": 2,
                "evidences": {
                    "texts": [
                        {
                            "action": 0,
                            "dataId": "de56f6120c5447508fe6ca78f5ea84c9",
                            "labels": []
                        }
                    ],
                    "images": [
                        {
                            "name": "http://xxx/tools/webtest",
                            "dataId": "9de507726f9a4860b25f25c20452ba46",
    		        "imageUrl":"https://xxxxxx.png",
                            "status": 0,
                            "action": 0,
                            "labels": [
                                {
                                    "label": 500,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 300,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 100,
                                    "level": 0,
                                    "rate": 0.99985105
                                }
                            ]
                        },
                        {
                            "name": "http://xxx/tools/webtest",
                            "dataId": "c6392dca1b994d13ab8ae43032618a93",
    		        "imageUrl":"https://xxxxxx.png",
                            "status": 0,
                            "action": 0,
                            "labels": [
                                {
                                    "label": 500,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 300,
                                    "level": 0,
                                    "rate": 1
                                }
                            ]
                        }  
                    ],
                    "audios": [
                        {
                            "action": 0,
                            "asrStatus": 4,
                            "dataId": "3eb8f886bd2e4c3789e5efe95073a6e9",
                            "labels": []
                        },
                        {
                            "action": 0,
                            "asrStatus": 4,
                            "dataId": "a7d11d939f754ebd8cad69c0cbb84b69",
                            "labels": []
                        }
                    ],
                    "videos": [
                        {
                            "dataId": "0de61712290f45e798506005bea5966a",
                            "status": 120,
                            "level": 0,
                            "evidences": []
                        },
                        {
                            "dataId": "607b57d42f5b45d983b48c7bf739e01b",
                            "status": 120,
                            "level": 0,
                            "evidences": []
                        }
                    ],
                    "files": []
                }
            },
            {
                "dataId": "10086_",
                "taskId": "3e942eccccd04fd8b080ecb43a83bbc1",
                "callback": "callback123456789",
                "result": 0,
                "failureReason": 100,
                "evidences": {
                    "texts": [],
                    "images": [],
                    "audios": [],
                    "videos": [],
                    "files": []
                }
            },
            {
                "dataId": "10086_",
                "taskId": "a58fcfead10b49e2b8c715c045e88226",
                "callback": "callback123456789",
                "result": 0,
                "failureReason": 100,
                "evidences": {
                    "texts": [],
                    "images": [],
                    "audios": [],
                    "videos": [],
                    "files": []
                }
            }
        ]
    }
    

    当无最新离线结果需要获取时,输出示例如下:

    {
        "code": 200,
        "msg": "ok",
        "result":[]
    }
    

    网站解决方案主动回调说明

    接口描述

    易盾提供主动回调和被动回调数据两种方式,主动回调以数据为维度根据提交时设置的回调地址,检测完成之后将结果推送到回调地址。

    主动回调接入

    客户接入主动回调的方式很简单,只需要在调用在线检测接口请求参数中指定回调通知参数callbackUrl(即一个http(s)协议接口的URL)

    业务类型 回调参数名称 类型 最大长度 描述
    网站检测 callbackUrl String 256 提交参数中添加callbackUrl字段

    请求回调接口说明

    客户提供的回调地址,需支持 POST 方法,请求数据编码皆为 utf-8。

    回调成功时需要响应json结果:{ "code": 200, "message": "xxxx" },回调失败时响应code非200,如{ "code": 500, "message": "回调处理失败" }。

    针对回调失败的数据可以通过被动回调的方式来查询到结果。

    返回参数结构

    参数名称 类型 是否必传 描述
    secretId String Y 产品秘钥 id ,由易盾反垃圾云服务分配,产品标识
    signature String Y 请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权
    callbackData String Y 主动回调推送数据,格式为json字符串,callbackData返回结构与离线结构一致,具体返回结构请查看响应示例

    接口鉴权

    客户主动回调接收接口可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权

    /**
     * 通过HttpServletRequest做签名验证
     */
    public static boolean verifySignature(HttpServletRequest request) {
        String secretId = request.getParameter("secretId");
        String businessId = request.getParameter("businessId");
        String signature = request.getParameter("signature");
        if (StringUtils.isEmpty(secretId) || StringUtils.isEmpty(signature)) {
            // 签名参数为空,直接返回失败
            return false;
        }
        Map<String, String> params = Maps.newHashMap();
        for (String paramName : request.getParameterMap().keySet()) {
            if (!"signature".equals(paramName)) {
                params.put(paramName, request.getParameter(paramName));
            }
        }
        // SECRETKEY:产品私有密钥 SECRETID:产品密钥ID BUSINESSID:业务ID,开通服务时,易盾会提供相关密钥信息
        String serverSignature = getSignature(SECRETKEY, params);
        return signature.equals(serverSignature) && SECRETID.equals(secretId) && BUSINESSID.equals(businessId);
    }
    
    /**
    * 生成签名信息
    * @param secretKey 产品私钥
    * @param params 接口请求参数名和参数值map,不包括signature参数名
    */
    public static String genSignature(String secretKey, Map<String, String> params) throws UnsupportedEncodingException {
        // 1. 参数名按照ASCII码表升序排序
        String[] keys = params.keySet().toArray(new String[0]);
        Arrays.sort(keys);
    
        // 2. 按照排序拼接参数名与参数值
        StringBuffer paramBuffer = new StringBuffer();
        for (String key : keys) {
            paramBuffer.append(key).append(params.get(key) == null ? "" : params.get(key));
        }
        // 3. 将secretKey拼接到最后
        paramBuffer.append(secretKey);
    
        // 4. MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
        return DigestUtils.md5Hex(paramBuffer.toString().getBytes("UTF-8"));
    }
    

    网站检测解决方案主动回调响应示例

    {
                "dataId": "10086_",
                "taskId": "15ed9fefe068427cb45724f6f17ee7db",
                "callback": "callback123456789",
                "result": 2,
                "evidences": {
                    "texts": [
                        {
                            "action": 0,
                            "dataId": "de56f6120c5447508fe6ca78f5ea84c9",
                            "labels": []
                        }
                    ],
                    "images": [
                        {
                            "name": "http://xxx/tools/webtest",
                            "dataId": "9de507726f9a4860b25f25c20452ba46",
    			"imageUrl":"https://xxxxxx.png",
                            "status": 0,
                            "action": 0,
                            "labels": [
                                {
                                    "label": 500,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 300,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 100,
                                    "level": 0,
                                    "rate": 0.99985105
                                },
                                {
                                    "label": 400,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 200,
                                    "level": 0,
                                    "rate": 0.9889235
                                }
                            ]
                        },
                        {
                            "name": "http://xxx/tools/webtest",
                            "dataId": "c6392dca1b994d13ab8ae43032618a93",
    		        "imageUrl":"https://xxxxxx.png",
                            "status": 0,
                            "action": 0,
                            "labels": [
                                {
                                    "label": 500,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 300,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 100,
                                    "level": 0,
                                    "rate": 0.99997765
                                },
                                {
                                    "label": 400,
                                    "level": 0,
                                    "rate": 1
                                },
                                {
                                    "label": 200,
                                    "level": 0,
                                    "rate": 0.99996674
                                }
                            ]
                        }
                    ],
                    "audios": [
                        {
                            "action": 0,
                            "asrStatus": 4,
                            "dataId": "3eb8f886bd2e4c3789e5efe95073a6e9",
                            "labels": []
                        },
                        {
                            "action": 0,
                            "asrStatus": 4,
                            "dataId": "a7d11d939f754ebd8cad69c0cbb84b69",
                            "labels": []
                        }
                    ],
                    "videos": [
                        {
                            "dataId": "0de61712290f45e798506005bea5966a",
                            "status": 120,
                            "level": 0,
                            "evidences": []
                        },
                        {
                            "dataId": "607b57d42f5b45d983b48c7bf739e01b",
                            "status": 120,
                            "level": 0,
                            "evidences": []
                        }
                    ],
                    "files": []
                }
            },
            {
                "dataId": "10086_",
                "taskId": "3e942eccccd04fd8b080ecb43a83bbc1",
                "callback": "callback123456789",
                "result": 0,
                "failureReason": 100,
                "evidences": {
                    "texts": [],
                    "images": [],
                    "audios": [],
                    "videos": [],
                    "files": []
                }
            },
            {
                "dataId": "10086_",
                "taskId": "a58fcfead10b49e2b8c715c045e88226",
                "callback": "callback123456789",
                "result": 0,
                "failureReason": 100,
                "evidences": {
                    "texts": [],
                    "images": [],
                    "audios": [],
                    "videos": [],
                    "files": []
                }
            }
    }
    
    在线咨询 电话咨询:95163223 免费试用