异步检测结果回调接口规范
更新时间:
回调接口概述
针对于审核服务 .../async/check/submit
异步接口的回调,用于将异步检测审核结果推送给客户,客户需要按照以下规范实现接收结果的接口。
接口说明
结果将以 taskId
为维度,将审核结果推送给客户。如需使用回调功能,
- 方式1:请在
控制台-服务配置
配置回调URL(http协议),回调区域,回调密钥在配置完回调参数后自动生成。
- 方式2:在
.../async/check/submit
接口提交任务时,携带对应的回调参数。见异步文本检测submit接口。
需要注意使用方式2
的优先级大于方式1
,如在提交任务时使用接口入参方式会使控制台配置的回调参数失效,请确保入参正确。另外在接口入参时需保证回调url
,回调密钥
不为空,否则回调不生效。
客户方需保证回调接收接口的可用性和稳定性,确保能正常接收推送过来的结果数据。
接口鉴权
客户可通过配置完回调参数后分配的密钥信息字段进行接口鉴权。具体方式如下:
-
签名算法
1> 将接受的的请求体参数按照ASCII码表升序顺序排序。
2> 将排序好的参数 append 成字符串。格式为:key1 + value1 +key2 + value2…。
3> 将配置完回调参数后生成的密钥 append 到 2> 步骤生成的字符串后。
4> 将 3> 步骤生成的字符串使用 UTF-8 进行编码,使用 MD5 进行加密生成 signature 参数值,并将其放入 请求 header 中。
-
示例代码
/**
* 生成签名
* @param secretKey 后台密钥
* @param params 接口请求参数名和参数值map,不包括signature参数名
* @return
*/
public static String signature(String secretKey, Map<String, String> params){
String[] keys = params.keySet().toArray(new String[0]);
Arrays.sort(keys);
StringBuilder signBuilder = new StringBuilder();
for (String key : keys) {
signBuilder.append(key).append(params.get(key));
}
signBuilder.append(secretKey);
try {
return DigestUtils.md5Hex(signBuilder.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// error
}
return null;
}
接入说明
-
协议说明:客户方需提供支持 http 协议的 post 请求方式的接口。
-
接口性能:客户需保持接口的稳定性与可靠性。
-
失败重试:我们在收到客户回调响应后,如果不符合规定的接受成功规范,则认为此次推送失败。将以规定间隔时间 10s 推送 3 次,如果第三次继续失败将不再继续推送。如要获取结果则调用主动查询结果接口。
请求说明
-
请求地址及方式
名称
值
callbackUrl
回调地址url(http协议)
HTTP_METHOD
POST
-
请求头
名称
类型
必填
说明
Content-Type
String
是
固定值:application/json
signature
String
是
签名,验证请求的合法性,参照鉴权算法
-
请求参数
名称
类型
说明
appId
String
所属项目编号
taskId
String
提交异步审核时,返回的任务ID
result
JSON String
审核结果
-
result详情
字段名
类型
描述
code
Number
预留字段(忽略)
textSpam
TextSpam
结果信息
warning
Boolean
自定义广告词的报警信息,在控制台上添加黑名单时配置
taskId
String
区分不同次调用的唯一标识
language
String
语种
startTime
Number
时间戳,代表检测文本调用时间
endTime
Number
时间戳,代表检测文本结果返回时间
- TextSpam
字段名
类型
描述
content
String
检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回;
result
Number
0:通过,1:建议审核,2:不通过
tags
List
分类信息
wordList
字符串数组
敏感词列表
- Tag
字段名
类型
描述
tag
Number
一级分类信息代码
100:涉政;110:暴恐;120:违禁;130:色情;150:广告;160:辱骂;170:仇恨言论;180:未成年保护;190:敏感热点;410:违规表情;420:昵称;300:广告法;220:私人交易;900:其他;999:用户自定义类
tagName
String
检测文本命中的一级类型名称
tagNameEn
String
检测文本命中的一级类型名称(英文)
level
Number
分类级别,0:正常,1:疑似,2:异常
confidence
Number
置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段)
subTags
List
敏感信息的二级分类
- SubTag
字段名
类型
描述
subTag
Number
二级分类详细编码请参考 分类编码对照表
subTagName
String
检测文本命中的二级类型名称
subTagNameEn
String
检测文本命中的二级类型名称(英文)
wordList
字符串数组
命中详情
- 审核结果回调中result字段结构参考
-
请求响应
客户接口接收到我们回调的结果后,需要返回应答信息,接口响应 code
状态码为 0,当回调处理异常时,应答的 code
状态码应为 500,或者 4xx; 应答信息为json格式,字段定义如下:
名称
类型
必填
说明
code
Number
是
应答code,code 值为 0 代表此次回调成功
message
String
否
具体描述信息
回调接口概述
针对于审核服务 .../async/check/submit
异步接口的回调,用于将异步检测审核结果推送给客户,客户需要按照以下规范实现接收结果的接口。
接口说明
结果将以 taskId
为维度,将审核结果推送给客户。如需使用回调功能,
- 方式1:请在
控制台-服务配置
配置回调URL(http协议),回调区域,回调密钥在配置完回调参数后自动生成。 - 方式2:在
.../async/check/submit
接口提交任务时,携带对应的回调参数。见异步文本检测submit接口。
需要注意使用方式2
的优先级大于方式1
,如在提交任务时使用接口入参方式会使控制台配置的回调参数失效,请确保入参正确。另外在接口入参时需保证回调url
,回调密钥
不为空,否则回调不生效。
客户方需保证回调接收接口的可用性和稳定性,确保能正常接收推送过来的结果数据。
接口鉴权
客户可通过配置完回调参数后分配的密钥信息字段进行接口鉴权。具体方式如下:
-
签名算法
1> 将接受的的请求体参数按照ASCII码表升序顺序排序。
2> 将排序好的参数 append 成字符串。格式为:key1 + value1 +key2 + value2…。
3> 将配置完回调参数后生成的密钥 append 到 2> 步骤生成的字符串后。
4> 将 3> 步骤生成的字符串使用 UTF-8 进行编码,使用 MD5 进行加密生成 signature 参数值,并将其放入 请求 header 中。
-
示例代码
/**
* 生成签名
* @param secretKey 后台密钥
* @param params 接口请求参数名和参数值map,不包括signature参数名
* @return
*/
public static String signature(String secretKey, Map<String, String> params){
String[] keys = params.keySet().toArray(new String[0]);
Arrays.sort(keys);
StringBuilder signBuilder = new StringBuilder();
for (String key : keys) {
signBuilder.append(key).append(params.get(key));
}
signBuilder.append(secretKey);
try {
return DigestUtils.md5Hex(signBuilder.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// error
}
return null;
}
接入说明
-
协议说明:客户方需提供支持 http 协议的 post 请求方式的接口。
-
接口性能:客户需保持接口的稳定性与可靠性。
-
失败重试:我们在收到客户回调响应后,如果不符合规定的接受成功规范,则认为此次推送失败。将以规定间隔时间 10s 推送 3 次,如果第三次继续失败将不再继续推送。如要获取结果则调用主动查询结果接口。
请求说明
-
请求地址及方式
名称 值 callbackUrl 回调地址url(http协议) HTTP_METHOD POST -
请求头
名称 类型 必填 说明 Content-Type String 是 固定值:application/json signature String 是 签名,验证请求的合法性,参照鉴权算法 -
请求参数
名称 类型 说明 appId String 所属项目编号 taskId String 提交异步审核时,返回的任务ID result JSON String 审核结果 -
result详情
字段名 | 类型 | 描述 |
---|---|---|
code | Number | 预留字段(忽略) |
textSpam | TextSpam | 结果信息 |
warning | Boolean | 自定义广告词的报警信息,在控制台上添加黑名单时配置 |
taskId | String | 区分不同次调用的唯一标识 |
language | String | 语种 |
startTime | Number | 时间戳,代表检测文本调用时间 |
endTime | Number | 时间戳,代表检测文本结果返回时间 |
- TextSpam
字段名 | 类型 | 描述 |
---|---|---|
content | String | 检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回; |
result | Number | 0:通过,1:建议审核,2:不通过 |
tags | List |
分类信息 |
wordList | 字符串数组 | 敏感词列表 |
- Tag
字段名 | 类型 | 描述 |
---|---|---|
tag | Number | 一级分类信息代码 100:涉政;110:暴恐;120:违禁;130:色情;150:广告;160:辱骂;170:仇恨言论;180:未成年保护;190:敏感热点;410:违规表情;420:昵称;300:广告法;220:私人交易;900:其他;999:用户自定义类 |
tagName | String | 检测文本命中的一级类型名称 |
tagNameEn | String | 检测文本命中的一级类型名称(英文) |
level | Number | 分类级别,0:正常,1:疑似,2:异常 |
confidence | Number | 置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段) |
subTags | List |
敏感信息的二级分类 |
- SubTag
字段名 | 类型 | 描述 |
---|---|---|
subTag | Number | 二级分类详细编码请参考 分类编码对照表 |
subTagName | String | 检测文本命中的二级类型名称 |
subTagNameEn | String | 检测文本命中的二级类型名称(英文) |
wordList | 字符串数组 | 命中详情 |
- 审核结果回调中result字段结构参考
-
请求响应
客户接口接收到我们回调的结果后,需要返回应答信息,接口响应
code
状态码为 0,当回调处理异常时,应答的code
状态码应为 500,或者 4xx; 应答信息为json格式,字段定义如下:名称 类型 必填 说明 code Number 是 应答code,code 值为 0 代表此次回调成功 message String 否 具体描述信息