配合式活体检测 API
开发环境
开发环境
POST
http[s]: //api.xf-yun.com/v1/private/s67c9c78c
接口说明
内容 | 说明 |
---|---|
传输方式 | http[s] (为提高安全性,强烈推荐https) |
请求地址 | http[s]: //api.xf-yun.com/v1/private/s67c9c78c 注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用 |
请求行 | POST /v1/private/s67c9c78c HTTP/1.1 |
接口鉴权 | 签名机制,详情请参照下方鉴权说明 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向讯飞云服务发起HTTP请求的均可 |
适用范围 | 任意操作系统,但因不支持跨域不适用于浏览器 |
图片格式 | jpg/png/bmp/jpeg |
图片大小 | base64编码后大小不超过4M |
图片要求 | 清晰的人脸照片,人脸大小不小于30*30像素,其中人脸俯仰角、左右偏航角、人脸翻转角60°以内识别效果更好 |
#鉴权说明
https://api.xf-yun.com/v1/private/s67c9c78c?authorization=YXBpX2tleT0iYXBpa2V5WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iSk5od3prMWtLYjUwdUVGbEUxS2xCbk83K09NTjNZUk5LZVFsYzVMYVltTT0i&host=api.xf-yun.com&date=Fri%2C+17+Jul+2020+06%3A26%3A58+GMT
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
host | string | 是 | 请求主机 | api.xf-yun.com |
date | string | 是 | 当前时间戳,RFC1123格式("EEE, dd MMM yyyy HH:mm:ss z") | Fri, 17 Jul 2020 06:26:58 GMT |
authorization | string | 是 | 使用base64编码的签名相关信息(签名基于hmac-sha256计算) | 参考下方详细生成规则 |
服务端会对date进行时钟偏移检查,最大允许300秒的偏差,超出偏差的请求都将被拒绝。
在讯飞开放平台控制台,创建一个应用后打开明星相似度检索页面可以获取,均为32位字符串。
api_key="$api_key",algorithm="hmac-sha256",headers="host date request-line",signature="$signature"
signature 是使用加密算法对参与签名的参数签名后并使用base64编码的字符串,详见下方。
拼接的格式为(\n为换行符,’:’后面有一个空格):
host: $host\ndate: $date\n$request-line
请求url = api.xf-yun.com
date = Fri, 17 Jul 2020 06:26:58 GMT
host: api.xf-yun.com
date: Fri, 17 Jul 2020 06:26:58 GMT
POST /v1/private/s67c9c78c HTTP/1.1
signature_sha=hmac-sha256(signature_origin,$apiSecret)
signature=base64(signature_sha)
APISecret = apisecretXXXXXXXXXXXXXXXXXXXXXXX
date = Fri, 17 Jul 2020 06:26:58 GMT
signature=JNhwzk1kKb50uEFlE1KlBnO7+OMN3YRNKeQlc5LaYmM=
api_key="apikeyXXXXXXXXXXXXXXXXXXXXXXXXXX", algorithm="hmac-sha256", headers="host date request-line", signature="JNhwzk1kKb50uEFlE1KlBnO7+OMN3YRNKeQlc5LaYmM="
authorization = base64(authorization_origin)
示例:
authorization=YXBpX2tleT0iYXBpa2V5WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iSk5od3prMWtLYjUwdUVGbEUxS2xCbk83K09NTjNZUk5LZVFsYzVMYVltTT0i
#鉴权结果
HTTP Code | 说明 | 错误描述信息 | 解决方法 |
---|---|---|---|
401 | 缺少authorization参数 | {"message":"Unauthorized"} | 检查是否有authorization参数,详情见authorization参数详细生成规则 |
401 | 签名参数解析失败 | {“message”:”HMAC signature cannot be verified”} | 检查签名的各个参数是否有缺失,是否正确,特别确认下复制的api_key是否正确 |
401 | 签名校验失败 | {“message”:”HMAC signature does not match”} | 签名验证失败,可能原因有很多。 1. 检查api_key,api_secret 是否正确。 2.检查计算签名的参数host,date,request-line是否按照协议要求拼接。 3. 检查signature签名的base64长度是否正常(正常44个字节)。 |
403 | 时钟偏移校验失败 | {“message”:”HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication”} | 检查服务器时间是否标准,相差5分钟以上会报此错误 |
HTTP/1.1 401 Forbidden
Date: Thu, 06 Dec 2018 07:55:16 GMT
Content-Length: 116
Content-Type: text/plain; charset=utf-8
{
"message": "HMAC signature does not match"
}
{
"face_num" : 1,
"face_1" :
{
"ret" : 0,
"x" : 32,
"y" : 15,
"w" : 246,
"h" : 331,
"eye_status" : "close",
"eye_status_score" : 0.62309795618057251
"eye_threshold" : 0.90000000000000002
},
"ret" : 0
}
参数名 | 类型 | 描述 | 备注 |
---|---|---|---|
face_num | int | 图片内人脸数 | |
ret | int | 内部服务返回码 | ret=0表示请求成功,否则请参考错误码表 |
face_n.ret | int | 内部服务返回码 | ret=0表示该人脸框人脸检测成功,否则请参考错误码表 |
face_n | object | 表示第n个检测到的人脸 | |
face_n.x | int | 人脸框左上角x坐标 | |
face_n.y | int | 人脸框左上角y坐标 | |
face_n.w | int | 人脸框宽度 | |
face_n.h | int | 人脸框高度 | |
face_n.eye_status | string | 眼部状态 | open: 睁眼 close: 闭眼 |
face_n.eye_status_score | float | 眼部状态得分,分越高则睁眼可能性越高,反之亦然 | 返回范围:[0-1] |
face_n.eye_threshold | float | 眼部状态检测阈值 | 默认值:0.9 |