融媒体解决方案提交接口

接口地址

https://as.dun.163.com/v1/mediasolution/submit

接口描述

融媒体解决方案适用于,多种类型媒体(文本、图片、点播视频、点播音频、点播音视频、文档)合并过检场景,提交接口用于做数据提交。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

请求参数

公共参数已省略,详细见 请求公共参数,请求版本号如下:

参数名称类型是否必选最大长度描述
versionStringY4版本号v1

私有参数如下

参数名称类型是否必选最大长度描述
ipStringN128用户IP地址
accountStringN128用户唯一标识,如果无需登录则为空
deviceIdStringN128用户设备 id,与易盾设备画像库匹配,明文请转大写传入;MD5加密请明文转大写后MD5计算,再转大写传入,建议抄送
deviceTypeNumberN4用户设备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
publishTimeNumberN13发表时间,UNIX 时间戳(毫秒值)
dataIdStringN128数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
titleStringN512融媒体标题
contentString(json数组)Y150000json格式融媒体数据
自定义字段String(json数组),同contentN150000业务自定义字段,字段名称与是否过检均支持配置,请与易盾策略经理沟通配置。字段数据结构请参考 content字段,同时支持自定义多个字段
callbackStringN512数据回调参数,调用方根据业务情况自行设计,当调用文本离线结果获取接口时,该接口会原样返回该字段。作为数据处理标识,因此该字段应该设计为能唯一定位到该次请求的数据结构,如对用户的昵称进行检测,dataId可设为用户标识(用户ID),用户修改多次,每次请求数据的dataId可能一致,但是callback参数可以设计成定位该次请求的数据结构,比如callback字段设计成json,包含dataId和请求的时间戳等信息,当然如果不想做区分,也可以直接把callback设置成dataId的值。
callbackUrlStringN1024离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

content 数据结构

参数名称类型是否必选最大长度描述
typeStringY10类型,分别为text-文本,image-图片,audio-点播语音,video-点播视频,audiovideo-点播语音&点播视频,file-文档
dataStringY5000检测数据,类型为text时最多传入20条文本内容,每条最长5000字符;类型为image时最多传入50张图片url,每张最长512字符;类型为audio时最多传入5条语音url,每条最长512字符;类型为video时最多传入5条视频url,每条最长512字符;类型为audiovideo时最多传入5条音视频url,每条最长512字符;类型为file时最多传入10个文档url,每个最长512字符
dataIdStringN128数据唯一标识

响应结果

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

result 数据结构

参数名称类型描述
taskIdString本次请求数据标识,可以根据该标识查询数据最新结果
dataIdString数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询

请求示例

    /** 产品密钥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": "******"
        }
}