内容安全支持以异步消息通知的方式向您发送内容识别和您自助审核的结果。如果您的业务需要使用或集成相关数据,则可以配置回调通知。本文介绍了配置内容检测API回调通知的操作方法。

背景信息

说明 内容检测API和OSS违规检测均支持回调通知。关于OSS违规检测回调通知,请参见OSS违规检测回调通知
内容检测API回调通知分为扫描结果回调通知和审核结果回调通知。
  • 扫描结果回调通知:内容安全完成检测请求后,服务端将识别的结果以POST请求的方式,发送到您设置的HTTP回调通知地址。
  • 审核结果回调通知:您通过自助审核或调用反馈接口修改识别的结果后,内容安全服务端将审核结果以POST请求的方式,发送到您设置的HTTP回调通知地址。更多信息,请参见自助审核

相关概念

在配置回调通知前,请了解下表中描述的相关概念。

名称 说明
回调地址 回调地址是您在内容安全控制台配置的服务端地址,通常是您自己的业务服务器的公网地址。回调地址需要满足以下要求:
  • 应为HTTP、HTTPS协议接口的公网可访问的URL。
  • 支持POST方法。
  • 支持传输数据编码采用UTF-8。
  • 支持数据接收格式为applicationx-www-form-urlencoded
  • 支持表单参数checksumcontent
Seed Seed值用于校验发送到您设置的HTTP回调通知地址的请求是否来自内容安全服务端。
回调次数 您的服务端接收到内容安全推送的回调消息后,如果返回的HTTP状态码为200,表示接收成功;如果返回其他的HTTP状态码,均视为接收失败。如果接收失败,内容安全服务端会重复推送回调消息,直至您接收成功。内容安全最多重复推送回调消息16次。
回调数据 回调数据是内容安全服务端向您设置的回调通知地址返回的数据内容。回调数据的结构描述见表 1
表 1. 回调通知表单数据
名称 类型 描述
checksum String 总和校验码,由<用户uid> + <seed> + <content>拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台,鼠标悬浮在右上角的头像上,查看上查询阿里云账号ID。
说明 为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。
content String 字符串格式保存的JSON对象,请自行解析反转成JSON对象。关于content解析成JSON后的结构,请参见下文content说明
说明 在内容检测API和OSS违规检测中,content的参数结构不同。

扫描结果回调通知

内容检测API的异步检测接口均支持扫描结果回调,例如图片审核异步检测视频审核异步检测。您在发起异步调用时,如果希望内容安全向您返回扫描结果,则必须在请求参数中传入callback(回调地址)和seed(校验字符串)。

说明 在异步调用时如果不使用扫描结果回调,则您只能通过定期轮询的方式获取异步检测结果。

操作步骤

  1. 自行准备好接收扫描结果的HTTP回调地址和Seed参数。
  2. 调用内容检测异步API接口时,传递相应的callbackseed请求参数,具体请参见API接口描述中的参数说明。

人工审核回调通知

人工审核接口不支持实时返回检测结果,系统支持回调方式通知调用方。人工审核分为人机审核和纯人工审核,两者的回调方式有一定的差异,以下分别进行介绍。

  • 人机审核
    如果您使用的是阿里云人工审核服务+机审服务,人工审核模块的回调需要通过控制台配置消息通知来实现,具体操作步骤如下:
    1. 登录内容安全控制台
    2. 在左侧导航栏,选择设置 > 机器审核
    3. 机器审核页面,单击消息通知
    4. 消息通知页签,单击新增通知
    5. 新增通知对话框,输入方案名称回调地址,选择加密算法通知类型审核结果。然后单击确认

      保存完成后,系统自动生成seedseed值用于校验您的回调接口收到的请求来自阿里云。请保存自动生成的seed

      注意
      • 如果您已经配置了机审回调通知服务,您可以直接复用之前的配置,也可以根据业务需要重新配置。
      • 系统支持对于所有的审核结果进行回调,您也可以根据自己的业务场景选择部分审核结果进行回调。
      • 通知类型项请选择阿里云人审结果
      • 加密算法方式:
        • SHA256:使用HMAC-SHA256加密算法。
        • 国密SM3:使用国密SM3加密算法,返回十六进制的字符串,且字符串由小写字母和数字组成。

          例如,abc经国密SM3加密后返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

    6. 业务场景管理页签,单击目标业务场景右侧操作列关联消息通知,关联您配置的回调通知方案
  • 纯人工审核

    如果您使用的是阿里云纯人工审核服务,人工审核模块的回调需要通过请求参数传入callback(回调地址)和seed(校验字符串)来实现。

    1. 自行准备好接收扫描结果的HTTP回调地址和seed参数。
    2. 调用内容检测异步API接口时,传递相应的callbackseed请求参数。

      关于具体参数说明,请参见图片人工审核视频人工审核文本人工审核复核人工审核结果

content说明

启用回调通知后,内容安全将按照回调配置发送内容检测API回调通知。回调通知中包含content表单数据。下表描述了content表单字段的结构。

表 2. content表单字段结构描述
名称 类型 是否必须 说明
scanResult JSONObject 扫描结果。根据检测对象(图片、视频)的不同,结构有差异。
  • 针对图片对象,结构与图片同步检测中的results返回参数一致,具体请参见图片同步检测
  • 针对视频对象,结构与视频异步检测中的results返回参数一致,具体请参见视频异步检测
auditResult JSONObject 您的自助审核结果。发生自助审核操作时才会有该字段。具体请参见auditResult
说明 如果只推送扫描结果,则没有该字段。
humanAuditResult JSONObject 阿里云的人工审核结果。如果您购买了阿里云的人工审核服务,则人工审核的结果体现在该字段中。具体请参见humanAuditResult
表 3. auditResult
名称 类型 是否必须 说明
suggestion String 自助审核的结果,取值:
  • block:审核时设置违规。
  • pass:审核时设置正常。
labels JSONArray 自助审核时设置的标签,包含以下可选值中的一个或者多个:
  • porn:鉴黄。
  • terrorism:暴恐涉政。
  • ad:图文广告。
  • live:不良场景。
表 4. humanAuditResult
名称 类型 是否必须 说明
suggestion String 阿里云人工审核的结果,取值:
  • block:阿里云人工审核结果为违规。
  • pass:阿里云人工审核结果为正常。
taskId String 检测任务的ID。通过任务ID可以关联到对应内容的审核结果。
dataId String 检测内容的ID。
labels JSONArray 人工审核的标签结果,可能有多个值。
说明 默认不返回该参数。配置该字段需要额外收费,具体请联系商务沟通。
content示例
{
    "scanResult": {
        "code": 200,
        "msg": "OK",
        "taskId": "fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695",
        "url": "http://1.jpg",
        "results": [
            {
                "rate": 100,
                "scene": "porn",
                "suggestion": "block",
                "label": "porn"
            }
        ]
    },
    "auditResult": {
        "suggestion": "block",
        "labels": [
            "porn",
            "ad",
            "terrorism"
        ]
    },
    "humanAuditResult": {
          "suggestion": "pass",
          "dataId": "yyyy",
          "labels": [
              "色情",
              "低俗"
        ],
          "taskId": "xxxxxx"
    }
}