@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 | ![]() |
6 years ago




















































































































































































