推送模式

2022.08.18 14:40:05

    内容安全图片结果获取推送模式用于将图片异步检测或人工审核结果主动推送给客户,保证客户最快的获取结果。客户需要按照以下规范实现接收结果的接口。推送模式与轮询模式互斥,只能选取一种模式进行结果获取。

    接口说明

    结果主动推送模式以数据为维度,将人工审核结果或者异步机器检测结果推送给客户,需客户在调用检测接口时设置回调地址callbackUrl参数,客户方需保证回调接收接口的可用性和稳定性,确保能正常接收推送过来的结果数据。

    鉴权说明

    客户接口可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权,鉴权粒度是否要精确到业务级别,用户可以根据需要自行决定,请参见接口鉴权

    接入说明

    • 协议说明:检测接口请求参数中指定了回调地址参数callbackUrl(即一个http(s)协议接口的URL)。主动推送接口需要支持http协议,支持POST方法,传输数据编码采用utf-8
    • 接口性能:推送结果接口默认超时时间为2s,为了保证顺利接收数据,客户需保证接收接口可用性和性能稳定
    • 失败重试:客户接口处理结果数据,并返回应答。如果客户接口请求异常,超时或收到的应答不符合规范,易盾会认为推送失败;我们将每隔10分钟推送一次,如果一直失败,持续一天后不再推送
    • 幂等性:结果推送时同样的结果可能会多次请求客户接口。客户接口需要保证幂等性,能够正确处理重复结果数据

    接口耗时

    客户接收接口需保证接收接口可用性和性能稳定,易盾请求超时时间为2s,客户接口尽量保证在1s内返回应答,如有特殊要求,可联系易盾运营适当调整超时时间

    请求

    请求地址

    名称
    HTTP URL 回调地址callbackUrl
    HTTP Method POST

    请求头

    名称 类型 必填 描述
    Content-Type String 固定值:"application/x-www-form-urlencoded"

    请求参数

    名称 类型 必填 最大长度 描述
    secretId String 32 产品秘钥 id ,由易盾内容安全云服务分配,产品标识
    businessId String 32 业务id ,由易盾内容安全云服务分配,业务标识
    signature String 32 请求签名,用来验证此次请求的合法性,具体算法见接口鉴权
    callbackData String - 主动推送结果数据,格式为json字符串

    请求体示例

    callbackData=***&signature=xxx&secretId=xxx&businessId=xxx
    

    callbackData为json字符串格式,请自行解析或者反转成json对象使用

    人工审核结果请求

    resultType为2时表示人工审核结果推送请求,callbackData详细字段信息如下:

    名称 类型 必须返回 描述
    callbackData Object 图片人工审核结果
     ∟ antispam Object 图片内容安全检测结果
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ suggestion Number 建议动作,0:通过,1:嫌疑,2:不通过
      ∟ remark String 人审备注信息
      ∟ resultType Number 结果类型,1:机器结果,2:人审结果
      ∟ labels Object[] 命中的分类信息
       ∟ label Number 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观
       ∟ level Number 分类级别,0:正常,1:不确定,2:确定
       ∟ rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高
      ∟ censorLabels Object[] 审核标签信息
       ∟ code String 审核标签标签唯一编号
       ∟ desc String 选择标签填写的备注内容
       ∟ customCode String 自定义审核标签编号
       ∟ name String 审核标签的名称
      ∟overAllMarkDesc String 整体审核备注
      ∟detailMarks Object[] 细节标注
       ∟ position Object[] 标注标签列表
        ∟ x folat 位置信息,对应目标矩形左上角横坐标相对坐标
        ∟ y float 位置信息,对应目标矩形左上角纵坐标相对坐标
       ∟censorLabels Object[] 标注备注
        ∟ code String 审核标签标签唯一编号
        ∟ desc String 选择标签填写的备注内容
        ∟ name String 审核标签的名称
      ∟ censorSource Number 审核来源,0:易盾人审,1:客户审核,2:易盾机审,3:用户质检,4:易盾质检
      ∟ censorRound Number 审核轮数
      ∟ censorTime Number 审核时间

    人工审核结果请求示例

    { 
        "antispam": { 
            "taskId": "a2e53718f9c348d09206e4671304ca7c", 
            "suggestion": 2, 
    	"remark":"人审备注信息,填写才会返回",
            "dataId": "dataId", 
            "name": "name", 
            "labels": [ 
                { 
                    "label": 400, 
                    "level": 2, 
                    "rate": 1.0 
                }, 
                { 
                    "label": 500, 
                    "level": 0, 
                    "rate": 1.0 
                }, 
                { 
                    "label": 300, 
                    "level": 0, 
                    "rate": 1.0 
                }
            ], 
            "censorLabels": [ 
                { 
                      "code": "审核标签编码", 
    	          "customCode":"自定义标签编码",
    		  "name": "审核标签名称",
                      "desc": "风景"
                }
            ],
            "resultType": 2, 
            "censorTime": 1622036595467, 
            "censorSource": 0, 
            "censorRound": 1 
        } 
    } 
    

    异步检测结果请求

    resultType为1时表示异步机器检测结果推送请求,callbackData详细字段信息如下:

    名称 类型 必须返回 描述
    callbackData Object 图片检测结果
     ∟ antispam Object 图片内容安全检测结果
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ status Number 检测状态:0 未开始、1检测中、2检测成功、3检测失败
      ∟ failureReason Number 检测失败原因,当status为3(检测失败)时返回:610 图片下载失败、620 图片格式错误、630 其他
      ∟ suggestion Number 建议动作,0:通过,1:嫌疑,2:不通过
      ∟ suggestionLevel Number 嫌疑级别,1:低嫌疑,2:高嫌疑,v5版本及以上新增
      ∟ resultType Number 结果类型,1:机器结果,2:人审结果
      ∟ labels Object[] 命中的分类信息
       ∟ label Number 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观
       ∟ level Number 分类级别,0:正常,1:不确定,2:确定
       ∟ rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高
       ∟ subLabels Object[] 细分类信息,可能包含多个
        ∟ hitStrategy Number 用于区分本次机器审核的命中原因:0:图片内容,1:图片上的文字
        ∟ subLabel Number 细分类,详细编码请参考下方对应细分类编码 对照表
        ∟ rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低
        ∟ details Object 命中的详细对象信息
         ∟ keywords Object[] 命中的自定义敏感词信息
          ∟ word String 敏感词内容
          ∟ x1 Number 位置信息,对应目标矩形左上角横坐标相对坐标
          ∟ y1 Number 位置信息,对应目标矩形左上角纵坐标相对坐标
          ∟ x2 Number 位置信息,对应目标矩形右下角横坐标相对坐标
          ∟ y2 Number 位置信息,对应目标矩形右下角纵坐标相对坐标
         ∟ libInfos Object[] 命中的自定义图片名单信息
          ∟ type Number 1:自定义用户名单,2:自定义ip名单,3:自定义设备名单,4:自定义图片名单,目前只支持4自定义图片名单返回
          ∟ entity String 该图片命中自定义图片名单对应原始添加的根源图片url
          ∟ hitCount Number 历史针对该数据源图片命中所有次数
          ∟ value String 图片中包含的可识别内容
          ∟ group String value对应的分组名称,用于对value的解释
         ∟ hitInfos Object[] 命中的线索信息
          ∟ value String 图片中包含的可识别内容
          ∟ group String value对应的分组名称,用于对value的解释
          ∟ x1 Number 位置信息,对应目标矩形左上角横坐标相对坐标
          ∟ y1 Number 位置信息,对应目标矩形左上角纵坐标相对坐标
          ∟ x2 Number 位置信息,对应目标矩形右下角横坐标相对坐标
          ∟ y2 Number 位置信息,对应目标矩形右下角纵坐标相对坐标
         ∟ anticheat Object 命中的反作弊信息
          ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
     ∟ ocr Object OCR结果信息,OCR功能需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ height Number 图片高度,单位像素
      ∟ width Number 图片宽度,单位像素
      ∟ frameSize Number 长图、gif图片拆帧后的分帧数,默认为1
      ∟ details Object[] 命中的详细信息
       ∟ content String 该图片中所有的文字信息集合
       ∟ lineContents Object[] OCR行信息
        ∟ lineContent String 每行的文字信息
        ∟ lang String 语种信息
        ∟ x1 Number 位置信息,对应目标矩形左上角横坐标相对坐标
        ∟ y1 Number 位置信息,对应目标矩形左上角纵坐标相对坐标
        ∟ x2 Number 位置信息,对应目标矩形右下角横坐标相对坐标
        ∟ y2 Number 位置信息,对应目标矩形右下角纵坐标相对坐标
     ∟ face Object 人脸检测信息,人脸检测结果需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ details Object[] 命中的详细信息
       ∟ faceNumber Number 该图片中包含的人脸个数
       ∟ faceContents Object[] 人脸详细信息
        ∟ name String 人脸名字,不可识别则为空
        ∟ glasses String 人脸戴眼镜,normal(无眼镜)、 glasses(普通眼镜)、 sunglasses(墨镜),如有需要请联系您的专属商务,未开通状态下不返回该字段
        ∟maskType String mask(有遮挡),normal(无遮挡)。判断人脸是否有遮挡,可以用于判断用户是否佩戴口罩墨镜纱巾等综合性遮挡场景
        ∟expression String 人脸情绪:neutral(扮酷),happy(微笑),sad(悲伤),surprise(惊讶),fear(害怕),anger(生气),disgust(不喜欢),如有需要请联系您的专属商务,未开通状态下不返回该字段
        ∟ gender String 人脸性别,值为男(male)、女(female);不可识别则为空
        ∟ age Number 人脸年龄,值为具体年龄(age);不可识别则为空
        ∟ type String 人脸类型,包含卡通脸(cartoon)、普通(normal),如有需要请联系您的专属商务,未开通状态下不返回该字段
        ∟ category String 人物分类,包含名人(star)、普通(normal)
        ∟ beautyScore Number 人脸颜值分数,保留4位小数,如有检测需求请联系易盾策略经理开启服务,如有需要请联系您的专属商务,未开通状态下不返回该字段
        ∟ sizeRatio String 人脸占比,百分比形式
        ∟ x1 Number 位置信息,对应目标矩形左上角横坐标相对坐标
        ∟ y1 Number 位置信息,对应目标矩形左上角纵坐标相对坐标
        ∟ x2 Number 位置信息,对应目标矩形右下角横坐标相对坐标
        ∟ y2 Number 位置信息,对应目标矩形右下角纵坐标相对坐标
     ∟ quality Object 图片质量检测结果,图片质量检测结果需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ details Object[] 命中的详细信息
       ∟ aestheticsRate Number 美观度分数,0-1,分数越高美观度越高,建议0.5分以上可认为美观度较好,0.3分以下可认为美观度较差,具体视业务场景而定
       ∟ sharpnessRate Number 清晰度分数,0-1,分数越高清晰度越高,建议0.5分以上可认为清晰度较好,0.3分以下可认为清晰度较差,具体视业务场景而定
       ∟ metaInfo Object 图片基本信息
        ∟ byteSize Number 图片大小,单位byte
        ∟ format String 图片格式
        ∟ height Number 图片高度,单位像素
        ∟ width Number 图片宽度,单位像素
       ∟ boarderInfo Object 图片背景信息
        ∟ hit Boolean 图片是否包含边框(任一边包含边框均视为包含)ture:包含边框;false:不包含边框
        ∟ top Boolean 图片顶部是否包含边框,ture:包含边框;false:不包含边框
        ∟ right Boolean 图片右侧是否包含边框,ture:包含边框;false:不包含边框
        ∟ bottom Boolean 图片底部是否包含边框,ture:包含边框;false:不包含边框
        ∟ left Boolean 图片左侧是否包含边框,ture:包含边框;false:不包含边框
       ∟ backgroundInfo Object 图片背景信息
        ∟ pureBackground Boolean 纯色背景检测,ture:背景纯色;false:背景复杂
     ∟ logo Object logo检测结果,logo检测支持对图片中包含的通识logo进行识别,检测结果返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ details Object[] 命中的详细信息
       ∟ logoName String logo名字,不可识别则为空
       ∟ x1 Number logo位置信息,对应logo矩形左上角横坐标相对坐标
       ∟ y1 Number logo位置信息,对应logo矩形左上角纵坐标相对坐标
       ∟ x2 Number logo位置信息,对应logo矩形右下角横坐标相对坐标
       ∟ y2 Number logo位置信息,对应logo矩形右下角纵坐标相对坐标
       ∟ rate String 置信度分数 ,置信度0-1,越接近1,置信度越高
       ∟ sizeRatio String logo占百分比大小
     ∟ discern Object 图片识别结果,识别检测支持对图片中物体进行识别,识别结果返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ details Object[] 命中的详细信息
       ∟ discernName String 识别物体名称
       ∟ rate Number 识别分数,0-1之间取值,1为置信度最高,0为置信度最低。
       ∟ type Number 图片识别类型,1 场景识别,2 地标识别,3 通用识别
     ∟ userRisk Object 图片用户画像识别结果,用户画像识别返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ name String 图片名称(或图片标识)
      ∟ dataId String 数据唯一标识
      ∟ details Object[] 命中的详细信息
       ∟ account String 账号信息
       ∟ accountLevel Number 账号等级,0:正常,1:嫌疑,2:删除
     ∟ anticheat Object 图片反作弊检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 数据ID
      ∟ details Object[] 命中的详细信息
       ∟ suggesiton Number 检测结果,0:通过,10:嫌疑,20:不通过
       ∟ hitInfos Object[] 命中信息
        ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
        ∟ hitMsg String 反作弊命中详情,可定制返回值

    异步检测结果请求示例

    { 
        "antispam": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "status": 2, 
            "suggestion": 2, 
    	"suggestionLevel":2,
            "censorType": 1, 
            "dataId": "dataId", 
            "name": "name",
            "resultType": 1, 
            "labels": [ 
                { 
                    "label": 500, 
                    "level": 2, 
                    "rate": 1.0, 
                    "subLabels": [ 
                        { 
                            "hitStrategy":0,
                            "subLabel": 50003, 
                            "rate": 1.0, 
                            "details": { 
                                "keywords": [ 
                                    { 
                                        "word": "自定义敏感词",
                                        "x1": 0.0473, 
                                        "y1": 0.0362, 
                                        "x2": 0.1964, 
                                        "y2": 0.1530 
                                    } 
                                ], 
                                "libInfos": [ 
                                    { 
                                        "entity": "自定义图片名单url", 
                                        "hitCount": 3,
                                        "value": "可识别内容", 
                                        "group": "可识别内容分组"
                                    } 
                                ], 
                                "hitInfos": [ 
                                    {  
                                        "value": "可识别内容", 
                                        "group": "可识别内容分组", 
                                        "x1": 0.0473, 
                                        "y1": 0.0362, 
                                        "x2": 0.1964, 
                                        "y2": 0.1530 
                                    }
                                ], 
                                "anticheat": { 
                                    "hitType": 1
                                } 
                            } 
                        } 
                    ] 
                }, 
                { 
                    "label": 300, 
                    "level": 2, 
                    "rate": 1.0, 
                    "subLabels": [ 
                        { 
                            "subLabel": 30003, 
                            "rate": 1.0 
                        }, 
                        { 
                            "subLabel": 30002, 
                            "rate": 0.99499786 
                        } 
                    ] 
                }, 
                { 
                    "label": 400, 
                    "level": 2, 
                    "rate": 1.0, 
                    "subLabels": [ 
                        { 
                            "subLabel": 40007, 
                            "rate": 1.0 
                        }, 
                        { 
                            "subLabel": 40003, 
                            "rate": 0.984296 
                        } 
                    ] 
                } 
            ] 
        }, 
        "ocr": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "dataId": "dataId", 
            "name": "name",
            "height": 730, 
            "width": 572, 
    	"frameSize":1,
            "details": [ 
                { 
                    "content": "唐新唐人电视台NEWTANGDYNASTYTELEVISIONRFA", 
                    "lineContents": [ 
                        { 
                            "lineContent": "唐", 
                            "x1": 0.0473, 
                            "y1": 0.0362, 
                            "x2": 0.1964, 
                            "y2": 0.1530, 
                            "lang": "zh" 
                        } 
                    ] 
                } 
            ] 
        }, 
        "face": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "name": "0", 
            "dataId": "dataId", 
            "details": [ 
                { 
                    "faceNumber": 3, 
                    "faceContents": [ 
                        { 
                            "name": "艾力更·依明巴海", 
    			"glasses":"normal",
                            "x1": 0.0473, 
                            "y1": 0.0362, 
                            "x2": 0.1964, 
                            "y2": 0.1530, 
                            "type": "normal", 
                            "category": "normal", 
                            "gender": "male", 
                            "age": 59, 
                            "sizeRatio": "1.74%" 
                        } 
                    ] 
                } 
            ] 
        }, 
        "quality": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "name": "name", 
            "dataId": "dataId", 
            "details": [ 
                { 
                    "aestheticsRate": 0.466, 
                    "sharpnessRate": 0.511, 
                    "metaInfo": { 
                        "byteSize": 355357, 
                        "height": 730, 
                        "width": 572, 
                        "format": "png" 
                    }, 
                    "boarderInfo": { 
                        "hit": false, 
                        "top": false, 
                        "right": false, 
                        "bottom": false, 
                        "left": false 
                    }, 
                    "backgroundInfo": { 
                        "pureBackground": false 
                    } 
                } 
            ] 
        }, 
        "logo": { 
                    "taskId": "cb047f822b444668ad90453fbd4d88f4", 
                    "name": "name", 
                    "dataId": "dataId", 
                    "details": [ 
                        { 
                            "logoName": "RFA", 
                            "x1": 0.5611, 
                            "y1": 0.7369, 
                            "x2": 0.8444, 
                            "y2": 0.9506,
    			"rate":0.9742,
    			"sizeRatio":"2.7%"
                        } 
                    ] 
                }, 
        "discern": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "name": "name", 
            "dataId": "dataId", 
            "details": [ 
                { 
                    "type": 1, 
                    "discernName": "RFA", 
                    "rate": 0.5611 
                } 
            ] 
        }, 
      "anticheat": {
                    "taskId": "fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId": "dataId",
                    "details": [
                        {
                        "suggestion": 20,
                        "hitInfos": [
                            {
                                "hitType": 5,
                                "hitMsg": "无SDK数据"
                            }
                        ]
                    }
                ]
            },
        "userRisk": { 
            "taskId": "cb047f822b444668ad90453fbd4d88f4", 
            "name": "name", 
            "dataId": "dataId", 
            "details": [ 
                { 
                    "account": "account", 
                    "accountLevel": 1 
                } 
            ]
        } 
    } 
    

    响应

    响应结果

    客户接口接收到我们回调的结果后,需要返回应答信息,接口响应HTTP状态码为200,当回调处理异常时,应答的HTTP状态码应为500,或者4xx; 应答信息为json格式,字段定义如下:

    名称 类型 必须返回 描述
    code Number 应答code,易盾方解析code为200表示推送成功
    msg String 具体描述信息

    响应体示例

    { 
        "code": 200, 
        "msg": "接收成功"
    }
    
    Online Chat Tel:95163223