faceplusplus-sdk

1.2.0 • Public • Published

FacePlusPlus API client

A JavaScript SDK / API client for common FPP APIs, for example:

Usage

npm i faceplusplus-sdk

import { bHumanBodyDetectAPI } from "faceplusplus-sdk";

...

const result = await bHumanBodyDetectAPI({
  return_attributes: 'gender,upper_body_cloth,lower_body_cloth',
  image_file: '~/myimage.jpg', // see image_file note below!
})

Auth credentials

REQUIRED!

You can make a free account to get your API key and secret.

If credentials are not set correctly, the api client will throw an Error.

Option 1: creds-fpp.json

Create a creds-fpp.json file in the app's process.cwd() (root):

{
  "api_key": "...",
  "api_secret": "..."
}

Option 2: configCreds

Import configCreds function to set your auth credentials:

import { configCreds } from "faceplusplus-sdk";
...
configCreds({
  api_key: "...",
  api_secret: "..."
});

QPS rate throttle

OPTIONAL!

You can configure a basic throttle to help maintain the QPS rate limits of your account. Import configQPS function to set your throttle delay times:

import { configQPS } from "faceplusplus-sdk";
...
configQPS({
  beforeCallDelaySeconds: 0, // default
  afterCallDelaySeconds: 0, // default
});
  • beforeCallDelaySeconds: Before the API call is made, start this timer delay.
    • Effective timer delay: beforeCallDelaySeconds - API_CALL_DURATION
  • afterCallDelaySeconds: After the API call is made, start this timer delay.
    • Effective timer delay: afterCallDelaySeconds + API_CALL_DURATION

Note: API call will only return when all timers have expired.

APIs

More info about face_token.

Input image files, eg. for image_file, etc

Please use the peer dependency formdata-node / file-from-path, for example:

import { anyAPIExample } from "faceplusplus-sdk";
import { fileFromPath } from "formdata-node/file-from-path";
...
const r = await anyAPIExample({
  image_file: await fileFromPath(pathToImageFile),
});

Tip: How to write a base64 image result to a file (NodeJS)

A simple example:

import fs from "fs";

function saveB64ImageToFile(base64Data, filepath) {
  const buffer = Buffer.from(base64Data, "base64");
  fs.writeFileSync(filepath, buffer);
}

CLI scripts

If you git clone this repo, there are npm scripts you can run that provide a command line interface to the library API client. See package.json for a list of scripts available.

Notebooks

If you git clone this repo, there are VS restbook notebooks you can run that provide a GUI to the API raw endpoints. See /notebooks for a list of available restbooks.

Package Sidebar

Install

npm i faceplusplus-sdk

Weekly Downloads

3

Version

1.2.0

License

ISC

Unpacked Size

23.5 kB

Total Files

41

Last publish

Collaborators

  • crazy4groovy