本文档为云净网平台与外部接入平台的接口描述,通过本文档中的描述进行数据交互。
协议说明:
- 协议采用http协议的post方式
- 请求消息体采用键值对方式,业务参数放在json_data的键值对中,摘要信息在sign的键值对中
- 返回消息直接为json格式,不带消息体摘要信息
请联系云净网客服人员获取密钥。
摘要算法采用HMAC_SHA1摘要,HMAC_SHA1和MD5摘要的区别在于摘要的时候增加了密钥,更加安全。
- 摘要原文内容在各个接口会进行详细定义,例如:数据接入协议的原文内容为:app_id,timestamp连接,用英文半角逗号“,”相连
- 使用key对摘要原文内容进行摘要,形成摘要信息,然后对摘要信息进行base64编码并转化为字符串形成sign
假设明文为testapi20160909,密钥为ICRf0mw4eRcFnVcPSDyS
- 获得明文testapi20160909的byte数组A,编码使用utf-8
- 使用密钥针对数组A进行加密,得到byte数组B
- 针对byte数组B进行base64编码,得到加密后byte数组C
- 将byte数组C格式为字符串输出,结果如下: mYZm2BA8YUrmHxvhhRhXJOLIYt0=
- 数据检测见步骤1、2,详细协议见数据检测接口协议
- 审核结果主动拉取见步骤3、4,详细协议见审核结果拉取接口协议
- 云净网主动通知见步骤5、6,详细协议见审核结果实时反馈接口协议
注:2和3是接收审核结果的协议,主动拉取或接收通知,实现一种即可。
此协议是客户向云净网提出检测请求的接口协议。 用户接入时,调用API须遵循以下规则:
- 传输方式:采用HTTP传输
- 提交方式:POST方法提交
- 数据格式:请求参数见说明;返回参数均为JSON格式
- 字符编码:UTF-8字符编码
- 签名算法:用户生成签名字符串,现支持的摘要算法为HMAC_SHA1
- 签名要求:请求和接收数据均需要签名认证
参数名 | 参数类型 | 说明 |
---|---|---|
app_id | String(32) | 向云净网申请的appId,每种检测数据类型独立申请201508120001 |
version | String | 固定为2.0 |
timestamp | String | 发送请求的时间,格式“yyyy-MM-dd HH:mm:ss” |
sign | String(256) | 摘要内容:app_id,timestamp连接,用英文半角逗号“,”相连,算法见1.3 |
json_data | String(Json格式) | json_data为实际需要检测的数据包内容。 |
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
id | 必选 | string(32) | 内容的唯一标识,用于用户标记数据 |
relation_id | 必选 | string(32) | 关联内容的Id(例如留言、评论、回复等主内容的主键),用于标记数据 |
publish_date | 必选 | String(19) | 用户发布内容的时间,格式“yyyy-MM-dd HH:mm:ss” |
user_id | 可选 | string(32) | 用户的唯一标识,非必选。 |
user_level | 可选 | String(32) | 用户级别(10-低,20-中,30-高) |
ip | 可选 | string(32) | 用户发布数据时所使用的公网IP |
url | 可选 | string(4000) | 文章公网url地址 |
author | 可选 | string(64) | 作者姓名 |
contents | 必选 | json-collection | 具体需要校验的内容,是个json对象集合 |
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
type | 必选 | string(32) | 内容类型;text:文本;image:图片;original_video:直接可以通过浏览器内置播放器播放的视频;warpper_video:通过浏览器可以播放,url返回信息为iframe包装后的窗口;original_audio:直接可以通过浏览器内置播放器播放的音频;wrapper_audio:通过浏览器可以播放,url返回信息为iframe包装后的窗口 |
content | 必选 | string(32) | 文本内容或图片、视频的url地址,其中视频的url根据传输的类型,如果是标准格式,可以直接给完整的媒体的url;如果不是标准格式,需要给出通过iframe包装后的url地址 |
master | 必选 | int | 1、type为text的,如果传入了多条文本,其中只有一条可以设置主记录,云净网会对其审核,其余文本为审核辅助字段,不进行审核操作。2、type为image或video类型的,此字段无意义。3、值定义:1-主记录文本;0-辅助字段,不审核。 |
POST /audit HTTP/1.1
Host: api.yunjingwang.cn:8080
Content-Length: 512
Expect: 100-continue
Connection: Keep-Alive
app_id=201608200001&version=2.0×tamp=2016-08-24 16:45:04&sign=KYqidJA21UdrJBkaP%2ffDn6Oi9fLdIOlBIhDPz2XP77xyrSkq%2b2POtVjWX1AZ4rHYd%2fmYzIyHociqJd9mAEz7RP4sxIJSe5kQOUSXhrSYpBmySfHtNr3BrvT0dKtN5tOnDnX5xRblmMtJKGl1MhCe7z7U8ttoR9Xn%2fKWzRm0cP88%3d&json_data=%7b%22id%22%3a%22d95dbee7aedc4e75a78e3dc09d1320aa%22%2c%22relation_id%22%3a%2212321%22%2c%22publish_date%22%3a%222015-08-24+16%3a45%3a04%22%2c%22user_id%22%3a%228899%22%2c%22ip%22%3a%22127.0.0.2%22%2c%22url%22%3a%22%e4%bd%a0%e5%a5%bd%ef%bc%81%22%7d
{
"id": "781ca80b32954dec80c4f1de1dc476ea",
"relation_id": "99999",
"publish_date": "2016-09-19 10:41:17",
"user_id": "shihaitao",
"ip": "192.168.1.100",
"contents": [
{
"type": "text",
"content": "测试",
"master": 1
},
{
"type": "image",
"content": "http://images.forwallpaper.com/files/images/9/917b/917be8ce/53118/carrie-underwood.jpg",
"master": 0
}
]
}
返回参数为Json数据。
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
code | 必选 | Integer | 1001-操作正常,结果为通过。1002-调用正常,结果为拦截。1003-调用正常,人工审核。2000-不支持的操作。4000-上传参数有误。4005-授权校验失败。5000-服务器繁忙或异常 |
msg | 必选 | string | code的对应说明。 |
id | 必选 | String(32) | 数据Id |
relation_id | 必选 | String(32) | 数据关联Id |
timestamp | 必选 | string | 云净网服务器的时间,格式“yyyy-MM-dd HH:mm:ss” |
reason | 必选 | string | 结果原因 |
HTTP/1.1 200 OK
Content-Length: 311
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 24 Aug 2015 08:45:05 GMT
{
"code": 1001,
"msg": "OK-PASS",
"id": "",
"relation_id": "",
"timestamp": "2015-08-24 16:45:05"
}
云净网向客户实时推送审核结果的接口。客户开发服务端,云净网对客户配置的回调地址发起调用推送数据。客户需按以下规则开发http服务端以便接收云净网的审核结果。 用户调用API须遵循以下规则:
- 传输方式:采用HTTP传输
- 提交方式:POST方法提交,一次提交一条业务数据
- 数据格式:请求参数见说明;返回参数为JSON格式
- 字符编码:UTF-8字符编码
- 签名算法:签名算法类型为HMAC_SHA1
- 签名要求:请求和接收数据均需要签名认证
- 注意:1)没有配置回调地址的云净网不会实时推送数据。2)接口请求超时时间为15秒,如超时则云净网会再次发起调用。3)如接口调用失败,总计推送3次失败后不再处理。
参数名称 | 参数类型 | 说明 |
---|---|---|
version | String | 固定为2.0 |
sign | String(256) | 摘要内容:relation_id,timestamp连接,用英文半角逗号“,”相连,算法见1.3 |
json_data | string | 具体见json_data说明,采用json格式 |
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
id | 必选 | string(32) | 内容的唯一主键 |
relation_id | 必选 | string(32) | 关联内容的Id(例如留言、评论、回复等主内容的主键) |
app_id | 必选 | String(19) | 应用标识 |
audit_date | 可选 | string(32) | 审核时间 |
result | 可选 | Int | 0-违规;1-正常 |
op_type | 可选 | Int | 判定类型:1-系统;2-人工 |
reason | 必选 | string | 结果原因 |
POST /audit HTTP/1.1
Host: api.yunjingwang.cn:8080
Content-Length: 512
Expect: 100-continue
Connection: Keep-Alive
version=2.0&json_data=%7b%22id%22%3a%228a32158b836642c19e0807d0f13a73c3%22%2c%22relation_id%22%3a%2212321%22%2c&sign=XveWj8HGsjlSdo6%2fX7WTN%2bmh6bkpEt3XBb9VwsPP5V8uPjzBl%2fQNvVFRiJy5egsxBa0DDV20tQPUuN%2begbTR8z457717uHtTc4zYyrcJFeBTaao3au29d5iMUeXHDk%2bHH3ahRjRVOV06X5yaNO7EkAIGGlIqS4akvWlI61MDPV4%3d
{"id":"7d46c2fd23b54990b50b78e59adea9d1", //用户业务数据Id
"relation_id":"12321",//用户业务数据(相关)扩展Id
"app_id":"201508200001",//应用标识
"audit_date":"2016-03-02 17:00:52", //审核时间
"result":0,//0-违规;1-正常
"op_type":1}//判定类型:1-系统;2-人工
返回参数为Json数据。
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
code | 必选 | Integer | 200-成功。其余-失败。 |
msg | 必选 | string | 发生错误时code的对应说明。 |
HTTP/1.1 200 OK
Content-Length: 23
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 24 Aug 2015 08:45:05 GMT
{"code":200,"msg":"OK"}
此协议是客户向云净网获取审核结果数据的接口。 用户调用API须遵循以下规则:
- 传输方式:采用HTTP传输
- 提交方式:POST方法提交,一次可返回多条业务数据
- 数据格式:请求参数见说明;返回参数为JSON格式
- 字符编码:UTF-8字符编码
- 签名算法:用户生成签名字符串,现支持的摘要算法类型为HMAC_SHA1
- 签名要求:请求和接收数据均需要签名认证
- 审核结果:云净网平台每10分钟汇集一次结果数据,业务平台可以10分钟取一次结果数据。
参数名称 | 参数类型 | 说明 |
---|---|---|
platform_id | string | 向云净网申请的平台Id,为整数值 |
version | String | 固定为2.0 |
timestamp | String | 发送请求的时间,格式“yyyy-MM-dd HH:mm:ss” |
sign | String(256) | 摘要内容:platform_id,timestamp连接,用英文半角逗号“,”相连,算法见1.3 |
POST /audit HTTP/1.1
Host: api.yunjingwang.cn:8080
Content-Length: 512
Expect: 100-continue
Connection: Keep-Alive
platform_id=1&version=2.0×tamp=2015-09-09 17:08:55&sign=XveWj8HGsjlSdo6%2fX7WTN%2bmh6bkpEt3XBb9VwsPP5V8uPjzBl%2fQNvVFRiJy5egsxBa0DDV20tQPUuN%2begbTR8z457717uHtTc4zYyrcJFeBTaao3au29d5iMUeXHDk%2bHH3ahRjRVOV06X5yaNO7EkAIGGlIqS4akvWlI61MDPV4%3d&json_data=%7b%22id%22%3a%228a32158b836642c19e0807d0f13a73c3%22%2c%22relation_id%22%3a%2212321%22%2c
返回参数为Json数据。
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
code | 必选 | Integer | 1001-操作正常,返回结果。2000-不支持的操作4000-上传参数有误4005-授权校验失败5000-服务器繁忙或异常 |
msg | 必选 | string | code的对应说明。 |
timestamp | 必选 | string | 云净网服务器的时间,格式“yyyy-MM-dd HH:mm:ss” |
result_list | 必选 | string | Json集合数据,具体见result_list说明 |
字段名 | 约束 | 类型 | 说明 |
---|---|---|---|
id | 必选 | Integer | 平台用户传入的id,可用于删除或恢复数据的键值 |
relation_id | 必选 | string | 平台用户接入时传入的relation_id,可用于删除或恢复数据的关联键值 |
audit_date | 必选 | string | 云净网审核时间 |
app_id | 必选 | string | 平台用户在云净网申请的app_id,用于区别不同业务 |
result | 必选 | string | 审核结果,0-审核不通过;1-审核通过 |
reason | 必选 | string | 结果原因 |
{
"code": 1001,
"msg": "OK-PASS",
"timestamp": "2015-08-2416: 45: 05",
"result_list": [
{
"id": "7d46c2fd23b54990b50b78e59adea9d1",
"relation_id": "12321",
"app_id": "201508200001",
"audit_date": "2015-09-09 17:00:52",
"result": 0
},
{
"id": "f3c8f018c01c41f5befa7e13303cb61b",
"relation_id": "12321",
"app_id": "201508200001",
"audit_date": "2015-09-09 17:05:56",
"result": 0
},
{
"id": "dcb805ebf53745a0811dce6955f13ed7",
"relation_id": "12321",
"app_id": "201508200002",
"audit_date": "2015-09-09 17:06:57",
"result": 0
}
]
}
示例附件:yunclean-api-java-2.0.zip
示例附件: yunclean-api-php-2.0.zip
用户在调用“数据接入接口”时可能出现一些问题,主要是一些参数的格式以及签名算法不正确,总结如下。
- version:本版本固定为2.0
- timestamp:不是时间戳格式,需要传入标准的时间格式“yyyy-MM-dd HH:mm:ss”。
- sign:详见1.2节说明(当返回4005时,代表签名计算有误)
- contents:是一个json集合格式。即使只有1条数据,也是以[]包含具体的数据,如:
"contents": [{
"type": "text",
"content": "测试",
"master": 1
}]