文档离线结果获取

2022.11.22 10:55:19

    文档离线接口方式获取

    接口地址

    http://as-file.dun.163.com/v1/file/callback/results

    接口描述

    异步查询提交的文档检测结果。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

    请求参数

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

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

    响应结果

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

    result 数组数据结构

    参数名称 类型 描述
    dataId String 数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
    taskId String 文档数据请求标识,对应用户后台文档ID,可以根据该标识查询文档数据最新结果
    callback String 产品调用文本在线检测传递的 callback 字段数据。
    result Number 机器检测结果, 1:正常(建议通过) 2:异常(建议拦截) 3:疑似(建议人工确认)0:无结果(检测失败)
    resultType Number 审核类型,1:机器检测,2:审核
    censorSource Number 审核来源,0:易盾人审,1:用户人审,2:易盾机审
    censorRound Number 审核轮数,1:第1轮人审,2:第2轮人审,3:第3轮人审,4:第4轮人审,5:第5轮人审,未设置审核模式默认返回0
    failureReason Number 检测失败原因
    label Number
    evidences json对象 证据信息
    reviewEvidences json对象 人审证据信息,接入人工审核后,参考人审证据信息,人审证据信息与机器检测证据信息不共存
    censorLabels json数据 人审证据信息,支持在智能审核系统自定义标签分类信息

    failureReason 说明

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

    机器检测结果

    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数据结构一致,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
    page Number 证据文本所在文档页码,目前仅对pdf格式生效,返回pdf文档对应页码

    images 数据结构

    参数名称 类型 描述
    taskId String 当前图片检测数据标识
    sequence Number 当前图片在原始文档中的序号
    imageUrl String 图片下载地址
    level Number 分类级别,0:正常,1:不确定,2:确定
    labels json对象数组 分类信息详细数据图片在线检测labels数据结构一致,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观
    page Number 证据图片所在文档页码,目前仅对pdf格式生效,返回pdf文档对应页码

    人审证据信息

    censorLabels 数据结构

    参数名称 类型 描述
    code String 在智能审核系统配置自定义标签之后会生成一个唯一的标签编号
    desc String 在智能审核系统配置自定义标签备注

    reviewEvidences 数据结构

    参数名称 类型 描述
    reason String 判定原因
    remark String 备注信息
    detail json对象数组 人审证据详细信息

    detail 数据结构

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

    text 数据结构

    参数名称 类型 描述
    text String 人审标注文本
    reason String 文本判定原因

    image 数据结构

    参数名称 类型 描述
    url String 人审标注图片url
    reason String 图片判定原因

    响应示例

    机审结果示例如下

    {
     "code": 200,
     "msg": "ok",
     "result": [
    		{
    		 "dataId": "9a5a3bc46ced40b3aee241f7ec53d98d",
    		 "taskId": "411a661c4f584db3baa88b05da646281",
    		 "result": 1,
    		 "resultType":"2",
    		 "censorSource":2,
    	   	 "censorRound":0,
    		 "evidences": {
    				"texts": [
    					{
    					 "taskId": "3d320f710ef24337b99651f558690e39",
    					 "sequence": 0,
    					 "startText": "\n\n\n“哎,这乱世要结束真的很困难啊。”",
    					 "endText": "吧,不过却也算是一个很不错的战略天赋。\n",
    					 "action": 0,
    					 "labels": [
    							{
    							 "label": 0,
    							 "level": 0,
    							 "subLabels": []
    							}
    						],
    						"page": 1
    					}
    				],
    				"images": [
    					{
    					 "taskId": "6cea2637385b4761bcf965aeb6db64e2",
    					 "sequence": 0,
    					 "imageUrl": "https://yidun-antispam.nos-eastchina1.126.net/6cea2637385b4761bcf965aeb6db64e2?Signature=idjvfMYwTs%2Fh0d0wfMF39sTtQcNHrFi1ra%2Fz4sDLDTQ%3D&Expires=1598148883&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
    						"level": 0
    					}
    				]
    			},
    			"reviewEvidences": {
    			}
    		}
    	]
    }
    

    人审结果示例如下

    {
     "code": 200,
     "msg": "ok",
        {
            "dataId":"1596543959683",
            "taskId":"5930a4a27cec4b8e9f87a345254ceb92",
            "result":2,
    	"resultType":2,
            "censorSource":0
    	"censorRound":0,
            "evidences":{
    
            },
    	"censorLabels":[
    	   {
    	     "code":自定义标签ID
    	 }],
            "reviewEvidences":{
                "reason":"",
                "remark":"",
                "detail":{
                    "text":[
    
                    ],
                    "image":[
                        {
                            "url":"https://yidun-antispam.nos-eastchina1.126.net/17cbed9e138745a18c696a79891bacfc?Signature=UdZfbJfgBsXu6yazQuuB%2BXU5a1N8WBH%2BmBXPBPDga%2FY%3D&Expires=1597839973&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
                            "reason":"色情图片"
                        },
                        {
                            "url":"https://yidun-antispam.nos-eastchina1.126.net/ed745b1cfb2540889255417dec5f2098?Signature=lNpMBZU8Zl3HFI9vCWL%2B%2BKfZc8iSWQgaeKQUtaRL9sg%3D&Expires=1597839973&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
                            "reason":"违禁"
                        }
                    ]
                }
            },
         }
    }
    

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

    {"code":200,"msg":"ok"}
    

    文档回调方式获取

    易盾提供主动回调和被动回调数据两种方式,主动回调以数据为维度设置回调地址;易盾方产品回调数据后,主动调用客户提供的http地址将回调数据推送给客户

    回调接入说明

    客户接入主动回调的方式很简单,只需要在调用在线检测接口请求参数中指定了回调通知参数callbackUrl(即一个http(s)协议接口的URL),则需要支持POST方法,传输数据编码采用utf-8

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

    您服务端接收到我们推送的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将每隔10分钟推送一次,如果一直失败,持续一天后不再推送;我们主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,客户需保证接收接口性能稳定并且保证幂等性。

    请求方法

    客户提供的主动回调数据接收接口,需支持 POST 方法。

    字符编码

    所有接口的请求数据编码皆为 utf-8。

    请求公共参数

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

    secretId,signature参数用来给数据接收接口做签名鉴权用

    接口鉴权

    客户主动回调接收接口可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权,鉴权粒度是否要精确到业务级别,用户可以根据需要自行决定

    /**
     * 通过HttpServletRequest做签名验证
     * 
     * @param request
     * @return
     */
    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参数名
    * @return
    * @throws UnsupportedEncodingException
    */
    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"));
    }
    

    文档解决方案主动回调数据结构

    callbackData为Json字符串,数据结构如下:

    1.机审结果示例如下

    {
    		 "dataId": "9a5a3bc46ced40b3aee241f7ec53d98d",
    		 "taskId": "411a661c4f584db3baa88b05da646281",
    		 "result": 1,
    		 "resultType":"2",
    		 "censorSource":2,
    		 "censorRound":0,
    		 "evidences": {
    				"texts": [
    					{
    					 "taskId": "3d320f710ef24337b99651f558690e39",
    					 "sequence": 0,
    					 "startText": "\n\n\n“哎,这乱世要结束真的很困难啊。”",
    					 "endText": "吧,不过却也算是一个很不错的战略天赋。\n",
    					 "action": 0,
    					 "labels": [
    							{
    							 "label": 0,
    							 "level": 0,
    							 "subLabels": []
    							}
    						],
    						"page": 1
    					}
    				],
    				"images": [
    					{
    					 "taskId": "6cea2637385b4761bcf965aeb6db64e2",
    					 "sequence": 0,
    					 "imageUrl": "https://yidun-antispam.nos-eastchina1.126.net/6cea2637385b4761bcf965aeb6db64e2?Signature=idjvfMYwTs%2Fh0d0wfMF39sTtQcNHrFi1ra%2Fz4sDLDTQ%3D&Expires=1598148883&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
    						"level": 0
    					}
    				]
    			},
    			"reviewEvidences": {
    			}
    		}
    

    2.人审结果示例如下

    {
            "dataId":"1596543959683",
            "taskId":"5930a4a27cec4b8e9f87a345254ceb92",
            "result":2,
    	"resultType":2,
            "censorSource":0,
    	"censorRound":1,
            "evidences":{
    
            },
            "censorLabels":{code:"自定义标签ID"},
            "reviewEvidences":{
                "reason":"",
                "remark":"",
                "detail":{
                    "text":[
    
                    ],
                    "image":[
                        {
                            "url":"https://yidun-antispam.nos-eastchina1.126.net/17cbed9e138745a18c696a79891bacfc?Signature=UdZfbJfgBsXu6yazQuuB%2BXU5a1N8WBH%2BmBXPBPDga%2FY%3D&Expires=1597839973&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
                            "reason":"色情图片"
                        },
                        {
                            "url":"https://yidun-antispam.nos-eastchina1.126.net/ed745b1cfb2540889255417dec5f2098?Signature=lNpMBZU8Zl3HFI9vCWL%2B%2BKfZc8iSWQgaeKQUtaRL9sg%3D&Expires=1597839973&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd",
                            "reason":"违禁"
                        }
                    ]
                }
            }
        }
    
    Online Chat Tel:95163223