融媒体解决方案提交接口
2020.12.02 17:46:10
接口地址
https://as.dun.163.com/v1/mediasolution/submit
接口描述
融媒体解决方案适用于,多种类型媒体(文本、图片、点播视频、点播音频、点播音视频、文档)合并过检场景,提交接口用于做数据提交。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。
请求参数
公共参数已省略,详细见 请求公共参数,请求版本号如下:
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
version | String | Y | 4 | 版本号v1 |
私有参数如下
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
ip | String | N | 128 | 用户IP地址 |
account | String | N | 128 | 用户唯一标识,如果无需登录则为空 |
deviceId | String | N | 128 | 用户设备 id,与易盾设备画像库匹配,明文请转大写传入;MD5加密请明文转大写后MD5计算,再转大写传入,建议抄送 |
deviceType | Number | N | 4 | 用户设备id的类型,0:其他,10:IMEI,11:AndroidID,12:IDFA,13:IDFV,14:MAC ,20:IMEI_MD5,21:AndroidID_MD5,22:IDFA_MD5,23:IDFV_MD5,24:MAC_MD5 |
publishTime | Number | N | 13 | 发表时间,UNIX 时间戳(毫秒值) |
dataId | String | N | 128 | 数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
title | String | N | 512 | 融媒体标题 |
content | String(json数组) | Y | 150000 | json格式融媒体数据 |
自定义字段 | String(json数组),同content | N | 150000 | 业务自定义字段,字段名称与是否过检均支持配置,请与易盾策略经理沟通配置。字段数据结构请参考 content字段,同时支持自定义多个字段 |
callback | String | N | 512 | 数据回调参数,调用方根据业务情况自行设计,当调用文本离线结果获取接口时,该接口会原样返回该字段。作为数据处理标识,因此该字段应该设计为能唯一定位到该次请求的数据结构,如对用户的昵称进行检测,dataId可设为用户标识(用户ID),用户修改多次,每次请求数据的dataId可能一致,但是callback参数可以设计成定位该次请求的数据结构,比如callback字段设计成json,包含dataId和请求的时间戳等信息,当然如果不想做区分,也可以直接把callback设置成dataId的值。 |
callbackUrl | String | N | 1024 | 离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。 |
content 数据结构
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
type | String | Y | 10 | 类型,分别为text-文本,image-图片,audio-点播语音,video-点播视频,audiovideo-点播语音&点播视频,file-文档 |
data | String | Y | 5000 | 检测数据,类型为text时最多传入20条文本内容,每条最长5000字符;类型为image时最多传入50张图片url,每张最长512字符;类型为audio时最多传入5条语音url,每条最长512字符;类型为video时最多传入5条视频url,每条最长512字符;类型为audiovideo时最多传入5条音视频url,每条最长512字符;类型为file时最多传入10个文档url,每个最长512字符 |
dataId | String | N | 128 | 数据唯一标识 |
响应结果
响应字段如下,响应通用字段已省略,详细见响应通用字段:
result 数据结构
参数名称 | 类型 | 描述 |
---|---|---|
taskId | String | 本次请求数据标识,可以根据该标识查询数据最新结果 |
dataId | String | 数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
请求示例
/** 产品密钥ID,产品标识 */
private final static String SECRETID = "your_secret_id";
/** 产品私有密钥,服务端生成签名信息使用,请严格保管,避免泄露 */
private final static String SECRETKEY = "your_secret_key";
/** 易盾反垃圾云服务音视频解决方案在线提交接口地址 */
private final static String API_URL = "https://as.dun.163.com/v1/mediasolution/submit";
/** 实例化HttpClient,发送http请求使用,可根据需要自行调参 */
private static HttpClient httpClient = HttpClient4Utils.createHttpClient(100, 20, 2000, 2000, 2000);
/**
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Map<String, String> params = new HashMap<String, String>();
// 1.设置公共参数
params.put("secretId", SECRETID);
params.put("version", "v1");
params.put("timestamp", String.valueOf(System.currentTimeMillis()));
params.put("nonce", String.valueOf(new Random().nextInt()));
// 2.设置私有参数
params.put("title", "融媒体解决方案的标题");
JsonArray jsonArray = new JsonArray();
// 传图片url进行检测,name结构产品自行设计,用于唯一定位该图片数据
JsonObject text = new JsonObject();
text.addProperty("type", "text");
text.addProperty("data", "融媒体文本段落");
jsonArray.add(text);
JsonObject image = new JsonObject();
image.addProperty("type", "image");
image.addProperty("data", "http://xxx");
jsonArray.add(image);
JsonObject audio = new JsonObject();
audio.addProperty("type", "audio");
audio.addProperty("data", "http://xxx");
jsonArray.add(audio);
JsonObject video = new JsonObject();
video.addProperty("type", "video");
video.addProperty("data", "http://xxx");
jsonArray.add(video);
JsonObject audiovideo = new JsonObject();
audiovideo.addProperty("type", "audiovideo");
audiovideo.addProperty("data", "http://xxx");
jsonArray.add(audiovideo);
JsonObject file = new JsonObject();
file.addProperty("type", "file");
file.addProperty("data", "http://xxx");
jsonArray.add(file);
params.put("content", jsonArray.toString());
// 3.生成签名信息
String signature = SignatureUtils.genSignature(SECRETKEY, params);
params.put("signature", signature);
// 4.发送HTTP请求,这里使用的是HttpClient工具包,产品可自行选择自己熟悉的工具包发送请求
String response = HttpClient4Utils.sendPost(httpClient, API_URL, params, Consts.UTF_8);
// 5.解析接口返回值
JsonObject jObject = new JsonParser().parse(response).getAsJsonObject();
int code = jObject.get("code").getAsInt();
String msg = jObject.get("msg").getAsString();
if (code == 200) {
JsonObject result = jObject.get("result").getAsJsonObject();
String taskId = result.get("taskId").getAsString();
String dataId = result.get("dataId").getAsString();
System.out.println(String.format("SUBMIT SUCCESS: taskId=%s, dataId=%s", taskId, dataId));
} else {
System.out.println(String.format("ERROR: code=%s, msg=%s", code, msg));
}
}
响应示例
{
"code": 200,
"msg": "ok",
"result": {
"taskId": "******",
"dataId": "******"
}
}