标注回调API

一、 参数规范

  • 回调 URL:

填入“控制台-服务配置-人工标注-回调URL”中。

  • HTTP 请求Header:
Header 是否必需 描述
Content-Type application/json;charset=UTF-8 必需 请求体类型
Accept application/json;charset=UTF-8 必需 接受的返回类型
X-AppId 必需 项目的唯一标识,此值是 <控制台-服务配置>中的项目编号
X-TimeStamp 必需 请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。
Authorization 必需 签名值
  • 请求方法: POST

  • 请求体JSON对象:

参数 必需 类型 描述
appId 必需 String 项目编号
textData 必需 Array 文本的原数据
markData 必需 Array 修改数据
  • 请求体示例:
  {
    "appId": "", //项目编号
    "textData": [
      {
        "taskId": "", //TaskId
        "strategyId": "", //策略ID
        "language": "", //文本语种
        "stext": "", //文本内容
        "word": "", //命中内容
        "userId": "", //用户ID
        "result": "", //机审结果
        "tag": "", //机审一级类型
        "subTag": "", //机审二级类型
      }
    ],
    "markData": {
      "markResult": "", //最新结果
      "markTag": "", //最新类型(过期,请使用下面的参数【markTags】)
      "markTags": "", //最新类型列表
    }
  }     
  • 通过 HTTP 请求 Header 发送签名

方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:

 Authorization: ****
  • 签名计算方法
  1. 构造规范化的请求字符串(Canonicalized Query String):

将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)

CanonicalizedQueryString = hex(sha256(jsonBody))

  1. 构造被签名字符串 StringToSign ("\n" 代表ASCII里的换行符)
  StringToSign = HTTPMethod + "\n" +
                  CallbackUrl + "\n" +
                  CanonicalizedQueryString <从上一步得到> + "\n" +
                  "X-AppId:" + SAME_APPID_IN_HEADER + "\n" +
                  "X-TimeStamp:" + SAME_TIMESTAMP_IN_HEADER

HTTPMethod: POST。

CallbackUrl: 此值在 <控制台-服务配置-人工标注-回调URL>中。

使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。

  1. StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法

    有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
    
  2. 将上一步的结果转换为BASE64串

  3. 将BASE64串放入HTTP请求Header的Authorization