0.0.1 • Published 5 years ago

@faceunity/webapi v0.0.1

Weekly downloads
2
License
ISC
Repository
-
Last release
5 years ago

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

参数:

参数名数据类型是否必须说明
imageFormData图片数据
paramsString美颜参数,序列化后的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},详情
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer|Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/sticker

描述:贴纸接口

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/cosmetics

描述:人脸美妆

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
paramsString序列化的JSON字符(人脸美妆素材)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

params:

参数名数据类型是否必须说明
tex_browString眉毛 (眉毛素材)
tex_eyeString眼妆 (眼妆素材)
tex_pupilString美瞳 (美瞳素材)
tex_blusherString腮红 (腮红素材)
makeup_lip_colorString嘴唇,长度为4的RGBA数组,如229.5,53.55,124.95,0.7

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/poster

描述:人脸融合

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
templeteFormData渲染的海报图片, 以下图片经测试效果较好(海报列表)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/facewarp

描述:哈哈镜接口

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/armesh

描述:AR Mesh

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具(#AR Mesh))
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/animoji

描述:animoji

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
typeString同步或异步(Sync/Async)
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/changeface

描述:换脸接口

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
typeString同步或异步(Sync/Async)
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

/api/background

描述:背景分割接口

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据
itemString选择渲染的道具(默认道具)
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
typeString同步或异步(Sync/Async)
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
messageString返回信息
dataarrayBuffer或Objecttype为Sync时为渲染后返回的图片数据,type为Async时为{TaskId:xxxx}

视频处理接口

/api/video/upload

描述:视频上传接口

请求方式:POST

参数:

参数名数据类型是否必须说明
videoFormData视频数据
item/bundleString默认道具/自定义道具ID
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
typeString同步或异步(Sync/Async)
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
messageString返回信息
dataarrayBuffer渲染后返回的图片数据

/api/video/download

描述:视频下载接口

请求方式:POST

参数:

参数名数据类型是否必须说明
TaskIdStringtype为异步时返回的TaskId
typeStringvideo
encodingString返回图片数据编码方式,当前仅支持base64(默认返回为Buffer)

返回值:

参数名数据类型是否必须说明
typeString同步或异步(Sync/Async)
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
messageString返回信息
dataarrayBuffer渲染后返回的图片数据

/api/facedetection

描述:表情识别接口

请求方式:POST

参数:

参数名数据类型是否必须说明
imageFormData图片数据

返回值:

参数名数据类型是否必须说明
typeString同步或异步(Sync/Async)
codeNumber请求结果,0为请求失败,1为请求不合法,2为成功
messageString返回信息
dataJson上传图片的表情系数

道具列表:

贴纸

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示例
0.0.1

5 years ago