异步检测结果回调接口规范
更新时间:
接收异步文本审核结果,通过 taskId 关联提交的任务。
POSTcallbackUrl
回调配置
- 在控制台「服务配置」中配置 HTTP 回调 URL、回调区域,并获取自动生成的回调密钥。
- 或在提交任务时传入
callbackUrl 和 callbackSecretKey。
任务提交参数优先于控制台配置。通过接口设置回调时,回调 URL 与密钥均须非空,否则回调不生效。
请求参数
请求头
以下请求头均为必需。
Header
值
说明
Content-Type
application/json
JSON 请求体
signature
—
验签规则见下文「回调签名」
请求体
字段
类型
说明
appId
String
所属项目编号
taskId
String
提交异步审核时返回的任务 ID
result
JSON String
审核结果序列化后的 JSON 字符串
解析 result 字符串后获取结果对象,其中的 code 为预留字段,可忽略。
result
字段
类型
说明
code
Number
预留字段(忽略)
textSpam
TextSpam
结果信息
warning
Boolean
自定义广告词的报警信息,在控制台上添加黑名单时配置
taskId
String
区分不同次调用的唯一标识
language
String
语种
startTime
Number
时间戳,代表检测文本调用时间
endTime
Number
时间戳,代表检测文本结果返回时间
textSpam
解析 result 后的字段:textSpam。
字段
类型
说明
content
String
检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回;
result
Number
0:通过,1:建议审核,2:不通过
tags
List<Tag>
分类信息
wordList
String[]
敏感词列表
tags[]
解析 result 后的字段:textSpam.tags。
字段
类型
说明
tag
Number
一级分类代码,参见分类编码对照表。
tagName
String
检测文本命中的一级类型名称
tagNameEn
String
检测文本命中的一级类型名称(英文)
level
Number
分类级别,0:正常,1:疑似,2:异常
confidence
Number
置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段)
subTags
List<SubTag>
敏感信息的二级分类
subTags[]
解析 result 后的字段:textSpam.tags[].subTags。
字段
类型
说明
subTag
Number
二级分类详细编码请参考 分类编码对照表
subTagName
String
检测文本命中的二级类型名称
subTagNameEn
String
检测文本命中的二级类型名称(英文)
wordList
String[]
命中详情
请求示例
{
"appId": "1000",
"taskId": "c01b212f-3e31-4a2e-8346-b6f6ce3a3456",
"result": "{\"code\":0,\"textSpam\":{\"content\":\"****\",\"result\":2,\"tags\":[{\"tag\":160,\"level\":2,\"tagName\":\"辱骂\",\"tagNameEn\":\"insults\",\"subTags\":[{\"subTag\":160001,\"subTagName\":\"谩骂人身攻击\",\"subTagNameEn\":\"insults and personal attacks\",\"wordList\":[\"fuck\"]}]}],\"wordList\":[\"fuck\"]},\"taskId\":\"c01b212f-3e31-4a2e-8346-b6f6ce3a3456\",\"language\":\"English\",\"startTime\":1660103900367,\"endTime\":1660103900374}"
}
回调签名
使用回调密钥验证请求头中的 signature。
- 将请求参数名按 ASCII 升序排列。
- 按
key1 + value1 + key2 + value2 + ... 拼接参数名和值。
- 在末尾追加回调密钥。
- 将字符串以 UTF-8 编码,计算 MD5 十六进制摘要,与
signature 比较。
验签示例
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);
return DigestUtils.md5Hex(signBuilder.toString().getBytes(StandardCharsets.UTF_8));
}
示例使用 java.util.Arrays、java.util.Map、java.nio.charset.StandardCharsets 和 Apache Commons Codec 的 DigestUtils。
回调响应
接收回调后返回 JSON 应答。响应体的 code 为 0 表示处理成功;处理异常时,文档约定 code 为 500 或 4xx。
参数
类型
必需
说明
code
Number
必需
0 表示此次回调处理成功
message
String
可选
具体描述信息
{
"code": 0
}
失败处理
请保证接收接口稳定可用。推送失败时按 10 秒间隔推送 3 次,第三次仍失败则停止推送;可通过检测结果查询主动获取结果。
接收异步文本审核结果,通过 taskId 关联提交的任务。
POST
callbackUrl回调配置
- 在控制台「服务配置」中配置 HTTP 回调 URL、回调区域,并获取自动生成的回调密钥。
- 或在提交任务时传入
callbackUrl和callbackSecretKey。
任务提交参数优先于控制台配置。通过接口设置回调时,回调 URL 与密钥均须非空,否则回调不生效。
请求参数
请求头
以下请求头均为必需。
| Header | 值 | 说明 |
|---|---|---|
Content-Type |
application/json |
JSON 请求体 |
signature |
— | 验签规则见下文「回调签名」 |
请求体
| 字段 | 类型 | 说明 |
|---|---|---|
appId |
String |
所属项目编号 |
taskId |
String |
提交异步审核时返回的任务 ID |
result |
JSON String |
审核结果序列化后的 JSON 字符串 |
解析 result 字符串后获取结果对象,其中的 code 为预留字段,可忽略。
result
| 字段 | 类型 | 说明 |
|---|---|---|
code |
Number |
预留字段(忽略) |
textSpam |
TextSpam |
结果信息 |
warning |
Boolean |
自定义广告词的报警信息,在控制台上添加黑名单时配置 |
taskId |
String |
区分不同次调用的唯一标识 |
language |
String |
语种 |
startTime |
Number |
时间戳,代表检测文本调用时间 |
endTime |
Number |
时间戳,代表检测文本结果返回时间 |
textSpam
解析 result 后的字段:textSpam。
| 字段 | 类型 | 说明 |
|---|---|---|
content |
String |
检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回; |
result |
Number |
0:通过,1:建议审核,2:不通过 |
tags |
List<Tag> |
分类信息 |
wordList |
String[] |
敏感词列表 |
tags[]
解析 result 后的字段:textSpam.tags。
| 字段 | 类型 | 说明 |
|---|---|---|
tag |
Number |
一级分类代码,参见分类编码对照表。 |
tagName |
String |
检测文本命中的一级类型名称 |
tagNameEn |
String |
检测文本命中的一级类型名称(英文) |
level |
Number |
分类级别,0:正常,1:疑似,2:异常 |
confidence |
Number |
置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段) |
subTags |
List<SubTag> |
敏感信息的二级分类 |
subTags[]
解析 result 后的字段:textSpam.tags[].subTags。
| 字段 | 类型 | 说明 |
|---|---|---|
subTag |
Number |
二级分类详细编码请参考 分类编码对照表 |
subTagName |
String |
检测文本命中的二级类型名称 |
subTagNameEn |
String |
检测文本命中的二级类型名称(英文) |
wordList |
String[] |
命中详情 |
请求示例
{
"appId": "1000",
"taskId": "c01b212f-3e31-4a2e-8346-b6f6ce3a3456",
"result": "{\"code\":0,\"textSpam\":{\"content\":\"****\",\"result\":2,\"tags\":[{\"tag\":160,\"level\":2,\"tagName\":\"辱骂\",\"tagNameEn\":\"insults\",\"subTags\":[{\"subTag\":160001,\"subTagName\":\"谩骂人身攻击\",\"subTagNameEn\":\"insults and personal attacks\",\"wordList\":[\"fuck\"]}]}],\"wordList\":[\"fuck\"]},\"taskId\":\"c01b212f-3e31-4a2e-8346-b6f6ce3a3456\",\"language\":\"English\",\"startTime\":1660103900367,\"endTime\":1660103900374}"
}
回调签名
使用回调密钥验证请求头中的 signature。
- 将请求参数名按 ASCII 升序排列。
- 按
key1 + value1 + key2 + value2 + ...拼接参数名和值。 - 在末尾追加回调密钥。
- 将字符串以 UTF-8 编码,计算 MD5 十六进制摘要,与
signature比较。
验签示例
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);
return DigestUtils.md5Hex(signBuilder.toString().getBytes(StandardCharsets.UTF_8));
}
示例使用 java.util.Arrays、java.util.Map、java.nio.charset.StandardCharsets 和 Apache Commons Codec 的 DigestUtils。
回调响应
接收回调后返回 JSON 应答。响应体的 code 为 0 表示处理成功;处理异常时,文档约定 code 为 500 或 4xx。
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
code |
Number |
必需 | 0 表示此次回调处理成功 |
message |
String |
可选 | 具体描述信息 |
{
"code": 0
}
失败处理
请保证接收接口稳定可用。推送失败时按 10 秒间隔推送 3 次,第三次仍失败则停止推送;可通过检测结果查询主动获取结果。