文档离线结果获取
文档离线接口方式获取
接口地址
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":"违禁"
}
]
}
}
}