@faceunity/webapi v0.0.1
Nama Web API
简介
Web API的使用分为三个流程:
- 联系我司获取key和secret
- 通过key和secret获取access_token
- 通过access_token访问API
获取access_token
获取access_token时,需要用到key和secret,本文档中假设
Key = '12345' //必须携带
Secrect = '54321'
假设获取access_token的请求链接为:https://token.faceunity.com/api/v1/GetAccessToken?Key=12345 。获取access_token的具体流程如下:
1. 将本次请求参数按照名称进行升序排列
排序前:
{
"Key":"12345"
}
排序后:
{
"params":"test"
}
2. 构造被签名参数串
被签名串的构造规则为:被签名串 = 所有请求参数拼接(无需HTTP转义),并在本签名串的结尾拼接secret。
本例中排序后参数见上,故参数拼接后为Key12345paramstest
,然后加上账户中的secret,即本例中的54321
,最终被签名串为Key12345paramstest54321
。
3. 计算签名
计算被签名串的sha1值生成Signature。
Nodejs代码
const { createHash } = require("crypto");
function signature(params,secrect) {
let keys = Object.keys(params).sort(); //按参数排序
let sign_str: string = '';
keys.forEach((value, index) => { //构造被签名串
sign_str += value + params[value];
});
sign_str += secrect; //连接secrect
return createHash('sha1').update(sign_str).digest('hex'); //返回被签名串的sha1值
}
Python代码
import hashlib
import urlparse
import urllib
def _verfy_ac(private_key, params):
items=params.items()
# 请求参数串
items.sort()
# 将参数串排序
params_data = "";
for key, value in items:
params_data = params_data + str(key) + str(value)
params_data = params_data + private_key
sign = hashlib.sha1()
sign.update(params_data)
signature = sign.hexdigest()
return signature
# 生成的Signature值
签名计算命令行工具:Windows版 Linux版 Macos版
Exmaple:faceunity-cli signature --key 111 --secrect 222
4. 拼接出请求链接
将计算出的Signature拼接到尾部(各参数需要url编码,例如Key为lbA2MypNve2PeZpaOiPUGnSt+FHePw==,编码后为lbA2MypNve2PeZpaOiPUGnSt%2BFHePw%3D%3D)例如https://token.faceunity.com/api/v1/GetAccessToken?params=test&Key=12345&Signature=cac49742c5e52e63b285b6a549c7d362b19aa054
5. 发送请求,获取access_token
请求成功后会返回如下结构
{
"code":2,
"message":"success",
"data":{
"access_token":"82f205d0-8a31-11e8-8c11-b74c5a2e235c",
"expirein":600
}
}
data.access_token:申请到的access_token。
data.expirein:token的过期时间,单位为秒。
访问API
!> 请求API时需在url地址中带上access_token参数,如https://api.faceunity.com/api/beauty?access_token=82f205d0-8a31-11e8-8c11-b74c5a2e235c
。
!> 需要上传文件的接口都使用form-data方式上传
!> 上传清晰的人脸照片效果更好
API
/api/beauty
描述:美颜接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
params | String | 否 | 美颜参数,序列化后的json字符串,例如{"skin_detect":1,"heavy_blur":1,"blur_level":0.7,"color_level":0.3,"red_level":1},,序列化后的json字符串,例如{"skin_detect":1,"heavy_blur":1,"blur_level":0.7,"color_level":0.3,"red_level":1},详情 |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer|Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/sticker
描述:贴纸接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/cosmetics
描述:人脸美妆
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
params | String | 是 | 序列化的JSON字符(人脸美妆素材) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
params:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
tex_brow | String | 否 | 眉毛 (眉毛素材) |
tex_eye | String | 否 | 眼妆 (眼妆素材) |
tex_pupil | String | 否 | 美瞳 (美瞳素材) |
tex_blusher | String | 否 | 腮红 (腮红素材) |
makeup_lip_color | String | 否 | 嘴唇,长度为4的RGBA数组,如229.5,53.55,124.95,0.7 |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/poster
描述:人脸融合
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 是 | 图片数据 |
templete | FormData | 是 | 渲染的海报图片, 以下图片经测试效果较好(海报列表) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/facewarp
描述:哈哈镜接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/armesh
描述:AR Mesh
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具(#AR Mesh)) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/animoji
描述:animoji
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
type | String | 是 | 同步或异步(Sync/Async) |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/changeface
描述:换脸接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
type | String | 是 | 同步或异步(Sync/Async) |
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
/api/background
描述:背景分割接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 否 | 图片数据 |
item | String | 是 | 选择渲染的道具(默认道具) |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
type | String | 是 | 同步或异步(Sync/Async) |
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
message | String | 否 | 返回信息 |
data | arrayBuffer或Object | 是 | type为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx} |
视频处理接口
/api/video/upload
描述:视频上传接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
video | FormData | 是 | 视频数据 |
item/bundle | String | 是 | 默认道具/自定义道具ID |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
type | String | 是 | 同步或异步(Sync/Async) |
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
message | String | 否 | 返回信息 |
data | arrayBuffer | 是 | 渲染后返回的图片数据 |
/api/video/download
描述:视频下载接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
TaskId | String | 是 | type为异步时返回的TaskId |
type | String | 是 | video |
encoding | String | 否 | 返回图片数据编码方式,当前仅支持base64(默认返回为Buffer) |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
type | String | 是 | 同步或异步(Sync/Async) |
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
message | String | 否 | 返回信息 |
data | arrayBuffer | 是 | 渲染后返回的图片数据 |
/api/facedetection
描述:表情识别接口
请求方式:POST
参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
image | FormData | 是 | 图片数据 |
返回值:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
type | String | 是 | 同步或异步(Sync/Async) |
code | Number | 是 | 请求结果,0为请求失败,1为请求不合法,2为成功 |
message | String | 否 | 返回信息 |
data | Json | 是 | 上传图片的表情系数 |
道具列表:
贴纸
item | 图示 | item | 图示 |
---|---|---|---|
baimao_lm_fu | baozi_lm_fu | ||
caituzi_zh_fu | call_lm_fu | ||
caomei_lm_fu | chibang_lm_fu | ||
chmaomi_ztt_fu | dmmao_zh_fu | ||
fantuan_lm_fu | fenghongmao_ztt_fu | ||
fengya_ztt_fu | fenhongshu_ztt_fu | ||
fense_lm_fu | ffmao_zh_fu | ||
ffxiong_zh_fu | freestyle_ztt_fu | ||
glassesP_ztt_fu | glassesY_ztt_fu | ||
haijun_lm_fu | haijunmao_lm_fu | ||
Hatshenshi_ztt_fu | hboluo_zh_fu | ||
honghuzi_ztt_fu | huangguang_ztt_fu | ||
huangyu_lm_fu | hudie_lm_fu | ||
huzi_lm_fu | juanhuzi_lm_fu | ||
lhudie_zh_fu | ljiao_zh_fu | ||
nuqwa_zh_fu | shucha_zh_fu | ||
touhua_ztt_fu | wjdok_zh_fu | ||
xiaoermao_ztt_fu | xinglu_ztt_fu | ||
xlong_zh_fu | yingtaomao_ztt_fu | ||
CatSparks | ChalkCat2 | ||
ChalkRabbi | Crown | ||
DaisyPig | demon | ||
item0201 | item0203 | ||
item0205 | item0209 | ||
item0211 | item0502 | ||
item0503 | seye | ||
tears | wcat | ||
etmaozi_zh_fu | ettuzi_zh_fu | ||
etxigua_zh_fu | etye_zh_fu | ||
huanxing_ztt_fu | miaomi_ztt_fu | ||
qingwa_lm_fu | taiyanghua_ztt_fu | ||
xiaoji_ztt_fu | PrincessCrown | ||
tiara | YellowEar | ||
fu_zh_zbaixin | fu_zh_zbtang | ||
fu_ztt_lihua | fu_ztt_meigui | ||
niulang_ztt_fu | qiyuan_ztt_fu | ||
qxhua_zh_fu | qxniu_zh_fu | ||
qxzhinv_zh_fu | sanjiantao_lm_fu | ||
zhinv_ztt_fu | BigEarFox | ||
CatGray | ChalkCat | ||
evil | EyeBall | ||
fox | GourdBro | ||
huanlady1 | huanlady2 | ||
huanlady3 | huanlady4 | ||
huanlady5 | item0202 | ||
item0206 | item0207 | ||
item0504 | item0505 | ||
item0506 | krabbit | ||
pig | PinkCat | ||
pirate | pirate2 | ||
rabbit | rabbit1 | ||
redribbt | VectorCat | ||
aixingou | aixinniao | ||
dhj | dylm | ||
hana | long | ||
mogu | sanye | ||
touhua | BeagleDog | ||
ColorCrown | Deer | ||
HappyRabbi | hartshorn | ||
item0204 | item0208 | ||
item0210 | item0501 | ||
mask_hat |
Animoji
item | 图示 | item | 图示 |
---|---|---|---|
baimao_Animoji | douniuquan_Animoji | ||
huangya_Animoji | frog_Animoji | ||
hetun_Animoji | kuloutou_Animoji | ||
hashiqi_Animoji |
AR Mesh
item | 图示 | item | 图示 |
---|---|---|---|
bluebird | fenhudie | ||
huanghudie | lanhudie | ||
tiger_bai | tiger_huang | ||
zihudie | baozi | ||
tiger | xiongmao |
哈哈镜
item | 图示 | item | 图示 |
---|---|---|---|
facewarp1 | facewarp2 | ||
facewarp3 | facewarp4 | ||
facewarp5 | facewarp6 |
换脸
item | 图示 | item | 图示 |
---|---|---|---|
mask_guocaijie | mask_huangxiaoming | ||
mask_linzhiling | mask_liudehua | ||
mask_luhan | mask_matianyu | ||
mask_tongliya | mask_zhangbozhi |
背景分割
item | 图示 | item | 图示 |
---|---|---|---|
hez_ztt_fu | sea_lm_fu | ||
gufeng_zh_fu | ice_lm_fu | ||
xiandai_ztt_fu |
素材列表
人脸融合
item | 图示 | item | 图示 |
---|---|---|---|
1 | 2 | ||
3 | 4 | ||
5 | 6 | ||
7 | 8 | ||
9 | 10 |
人脸美妆
眉毛
item | 图示 | item | 图示 |
---|---|---|---|
brow-1 | brow-2 | ||
brow-3 |
眼妆
item | 图示 | item | 图示 |
---|---|---|---|
eye-1 | eye-2 | ||
eye-3 |
美瞳
item | 图示 | item | 图示 |
---|---|---|---|
eyepupil-1 | eyepupil-2 | ||
eyepupil-3 |
腮红
item | 图示 | item | 图示 |
---|---|---|---|
zhuangrong_sh-1 | zhuangrong_sh-2 | ||
zhuangrong_sh-3 |
5 years ago