開発者センター fio.js、API、Webhooks

FACEIO を Web アプリに組み込むためのドキュメントです。アプリケーションを作成し、 fio.jsを読み込み、 enroll() または authenticate()を呼び出します。バックエンドで必要になったら REST API エンドポイントと Webhooks を接続します。

FACEIO Console でアプリケーションを作成し、Public ID をコピーして、ドメインとセキュリティオプションを設定した後、Web サイトまたは Web アプリに fio.js を追加します。

顔認証クイックスタート

約5分

1 アプリケーションを作成

FACEIO Console ↗ にログインし、Application Wizard を使ってアプリケーションを作成します。認識エンジンを選択し、ウィジェットの実行を許可するドメインを追加して、最後に表示される Public ID をコピーします。

Public ID は fioa1b2c3d4 のような形式です。ブラウザーで使用でき、SDK インスタンスの作成に必要です。

2 インポート fio.js サイトに追加

ウィジェットのコンテナを追加し、 fio.js 終了タグの前に </body> を読み込みます。公式 CDN を使うと、再デプロイせずにブラウザー側の修正とセキュリティ更新をアプリに届けられます。

index.html
HTML
<div id="faceio-modal"></div>
<script src="https://cdn.faceio.net/fio.js"></script>
バンドラーを使用していますか? 公式 NPM パッケージをインストール ↗
npm i @faceio/fiojs

3 インスタンスを作成 faceIO Object

アプリケーションの Public ID で faceIO インスタンスを 1 つ作成します。ユーザーの登録や認証が必要な UI から利用できるように保持してください。

app.js
JavaScript
<script type="text/javascript">
  /* アプリケーションの Public ID で fio.js を初期化 */
  const faceio = new faceIO("app-public-id");
</script>

4 ウィジェットを呼び出す

fio.js を読み込み、faceIO() のインスタンスを作成したら、主な2つのメソッドのいずれかを呼び出します。

enroll()

新しいユーザーを登録し、そのユーザーのアカウントレコードに対応付けられる Facial ID を返します - ドキュメントを見る →

authenticate()

再訪ユーザーをアプリケーションのフェイスインデックスと照合します - ドキュメントを見る →

app.js
JavaScript
<button onclick="enrollNewUser()">新しいユーザーを登録</button>
<button onclick="authenticateUser()">ユーザーを 認証</button>

<script type="text/javascript">
  const faceio = new faceIO("app-public-id");

  function enrollNewUser() {
    // faceio.enroll() の呼び出しで 登録 フローを開始
  }

  function authenticateUser() {
    // faceio.authenticate() の呼び出しで 認証 フローを開始
  }

  function handleError(errCode) {
    // ここでエラーを処理
  }
</script>

SDK とフレームワーク

Getting Started アイコン
クイックスタート

Getting Started ガイド

FACEIO の初回統合に必要な手順です。FACEIO Console の設定、ドメイン許可、エンジン選択、スクリーンショット付きの登録フローを説明します。

  • スクリーンショット付き FACEIO Console 手順
  • ドメイン、キー、ブラウザー権限のチェックリスト
  • アプリに合わせて使える HTML の開始例
設定ガイドを開く
開発者コードアイコン
API ドキュメント

API リファレンスとボイラープレート

fio.js のSDKリファレンスです。メソッドのパラメーター、戻り値、エラーコード、フレームワーク例を確認できます。

  • すべての enroll() & authenticate() メソッドリファレンス
  • 推奨される処理パターン付きの全エラーコード
  • 一般的な JavaScript スタックのフレームワーク例
統合ガイドを見る
フレームワーク互換性メモ
  • フレームワークに依存しない SDK
    React、Vue、Angular、Next.js、Svelte、Nuxt.js、Ember.js、またはプレーン JavaScript で FACEIO を使えます。
  • 既存のルートを使う
    fio.js はフレームワークに依存しません。Web サイトまたは Web アプリで使用している登録およびログインフローに追加します。
  • ブラウザー要件
    標準的な Web カメラを備えた最新ブラウザーで動作します。専用の生体認証ハードウェアは必要ありません。
対応ブラウザー:
Chrome Chrome
Firefox Firefox
Edge Edge
+ Chromium ベースのすべてのブラウザー
すべての例を見る

Webhooks & API

ユーザーが 登録、認証、または Facial ID の削除を行うと、FACEIO は HTTP POST を設定済みのエンドポイントへ送信します。イベントの詳細は JSON body に含まれます。

完全なドキュメント
Webhooks アイコン
リアルタイムイベント

Webhooks とイベント通知

ユーザーの 登録、認証、Facial ID 削除に合わせてバックエンドを同期します。

ENROLL AUTH DELETION
Webhooks を設定

Webhooks の仕組み

  1. 1

    ユーザーが 登録、認証、または削除 フローを FACEIO ウィジェットで完了します。

  2. 2

    FACEIO は HTTP POST を設定済みエンドポイント URL に送信します。

  3. 3

    検証:JSON payload を処理する前に、WWW-Authenticate の bearer token を検証してください。

  4. FACEIO がイベントの受信を確認できるよう、所定の時間内に 200 OK を返します。

webhook-payload.json
JSON
{
  "eventName": "AUTH",
  "facialId": "fid_a1b2c3d4e5f6...",
  "appId": "your-app-public-id",
  "clientIp": "203.0.113.42",
  "payload": "your-linked-user-data",
  "details": {
    "timestamp": "2025-12-29",
    "gender": "male",
    "age": "28"
  }
}

主なフィールド

eventName
イベントタイプ: ENROLL / AUTH / DELETION
facialId
アプリケーションスコープの Facial ID
payload
連携したユーザーデータ(Business plan+)
clientIp
ユーザーのブラウザーのパブリック IP
受信リクエストを認証

必ず WWW-Authenticate bearer token と FACEIO Console に表示される Webhook key を比較してから payload を信頼してください。

REST API エンドポイント

HTTP とネットワークのアイコン

REST API エンドポイントにアクセス

プログラムからの制御

認証済み HTTPS エンドポイントで FACEIO アプリケーション、Facial ID、サーバー側のアカウント処理を管理します。fio.js はブラウザーで動作するため、バックエンドには必要ありません。

GET POST DELETE アプリケーションと Facial ID を管理

独自のインフラで FACEIO を実行しますか?

選択した認識エンジンを自社インフラストラクチャで管理する必要がある場合は、 FACEIO On-Premises を使用してください。

詳しく見る

エラーコード

が enroll() または authenticate() を reject すると、promise に数値の errCodeが含まれます。一般的なケースを明示的に処理し、ユーザーに次の手順を示してください。

コード 定数 意味 推奨アクション
1 fioErrCode.PERMISSION_REFUSED ユーザーまたはブラウザーによってカメラやマイクへのアクセスが拒否されました。 カメラへのアクセスを許可して再試行するようユーザーに案内します。
2 fioErrCode.NO_FACES_DETECTED セッション中にカメラフレーム内で顔が検出されませんでした。 明るい場所でカメラを正面から見るようユーザーに案内します。
3 fioErrCode.UNRECOGNIZED_FACE スキャンした顔がアプリケーションのフェイスインデックス内の登録済みユーザーと一致しません。 エラーを表示し、新規ユーザーには登録フローを案内します。
4 fioErrCode.MANY_FACES カメラフレーム内で複数の顔が同時に検出されました。 自分の顔だけが映るようユーザーに案内します。
5 fioErrCode.FACE_DUPLICATION この顔はすでにアプリケーションのフェイスインデックスに登録されています。 ユーザーをログイン(authenticate())フローへ案内します。
6 fioErrCode.PAD_ATTACK ライブネス検出が spoofing の試行(写真、動画、マスク)を検出しました。 検出ロジックの詳細を開示せずに試行を拒否します。
7 fioErrCode.MINORS_NOT_ALLOWED 年齢推定により、アプリ設定の最低年齢未満であることが示されました。 適切な年齢ゲートのメッセージを表示し、フローを中止します。
10 fioErrCode.NETWORK_IO FACEIO サーバーとの通信中にネットワークエラーまたはタイムアウトが発生しました。 少し待ってから再試行し、ユーザーの接続を確認します。

この表は一般的なケースを扱います。完全なリファレンスにはネットワーク、セッション、ブラウザー、同意に関するエラーも含まれます。

エラーコード完全リファレンス

ベストプラクティス

本番運用前に確認

顔認証は慎重に導入してください。リリース前に、セキュリティのベストプラクティスとプライバシーと同意の管理を確認します。

セキュリティアイコン
必須設定

アプリケーションセキュリティ

Widget を実行できる場所を制限し、デフォルトの PIN Code 検証を有効のまま使用し、ライブネス検出を設定して、バックエンドイベントを検証します。

  • ドメインを許可リストに追加 本番オリジンを正確に指定
  • ライブネス検出を設定して、プレゼンテーション攻撃の検出を支援
  • Webhook token を検証 アカウント状態を更新する前に
セキュリティガイドを見る
プライバシーアイコン
プライバシー管理

アプリケーションプライバシー

撮影前に明確な同意を示し、payload を小さく保ち、削除リクエストに対応し、チームが確認できる監査記録を残します。

  • 必ず同意を表示 撮影前に
  • payload データを最小化 必要最小限に
  • 有効な削除リクエストに対応し、適用される保持ルールに従う
プライバシーガイドを見る
Facial ID
ID モデル

一意の Facial Identifier

登録後、FACEIO はアプリケーションに属する Facial ID を返します。その識別子を独自のユーザーレコードと一緒に保存します。

// マッピング例
await db.users.update({
  where: { email: "user@x.com" },
  data:  { facialId: u.facialId }
});
Facial ID について
トラストセンター
データフロー

認識エンジンとデータフロー

FACEIO は、fio.js、Widget、REST API、Console を含め、biometric hash を保存、処理、参照しません。アプリケーション所有者が選択した Facial Recognition Engine が顔照合と biometric hash を処理します。アプリケーション所有者は、同意、保持、削除、エンジン設定について引き続き責任を負います。

同意
ユーザーによる削除
エンジンの選択
スコープ付き ID
トラストセンターを見る

本番チェックリスト

実施すること

  • fio.js は cdn.faceio.net からのみ読み込む
  • FACEIO Console でウィジェットを正確な本番ドメインに限定
  • アカウント状態の更新前に Webhook token と想定するアプリケーション識別子を検証
  • ウィジェットを読み込むすべてのページで HTTPS を使用
  • enroll() を呼び出す前に同意画面を表示する

避けること

  • 非公式ミラーから fio.js を読み込まない。ブラウザー側の修正を受け取るため、公式 CDN を使用する
  • 顔画像、biometric hash、認証に関する機密 payload をクライアント側ストレージやアプリケーションログに保存しない
  • http:// 環境ではウィジェットを読み込まないでください。カメラアクセスと安全なブラウザー API には HTTPS が必要です。
  • 必要な通知を提示し、エンドユーザーから明示的な同意を得る前に enroll() を呼び出さない
  • API secret key をクライアント側に公開しない

製品概要

顔認証

fio.js で顔認証を追加します。ユーザーはブラウザーで登録を行い、アプリケーションは返された facialId を以後の認証フローに使用します。

  • 返された facialId をバックエンドに保存し、FACEIO の登録と独自のユーザーレコードを関連付けます。
  • 同じ fio.js インスタンスから enroll() と authenticate() を呼び出します。
  • 既存のアクセスフローで、パスワードレスサインイン、アカウントの再認証、追加チェックに使用できます。
fio.js 顔認識ログイン 顔認証
統合ガイド

Meeting Shield

Google Meet、Zoom Web、Microsoft Teams Web 向けのディープフェイク検出用 Chrome 拡張機能です。ブラウザー会議で合成、リプレイ、加工が疑われる映像を参加者に知らせます。

Meeting Shield を見る

ID Match

ID 書類とライブセルフィーの撮影、ライブネスチェック、セルフィーと書類の顔写真との照合を行う、組み込み可能なブラウザーウィジェットです。任意の書類項目抽出には、197 以上の国と地域の 11K 以上の ID 書類形式に対応する PixLab DOCSCAN ↗ を使用します。ID Match は書類の真正性を検証せず、法的な本人確認を行いません。

ID Match を見る

リソースとコミュニティ

FACEIO Console

FACEIO Console

アプリケーションを作成し、メトリクスを確認し、セキュリティ設定を調整し、統合に必要なキーをコピーします。

開発中は FACEIO Console で許可ドメインと認識設定を管理し、各環境が正しい Public ID を使用していることを確認します。

ライブメトリクス アプリ設定 API キー
FACEIO Console を開く
開発者向け設定

Web サイトまたは Web アプリに顔認証を追加

FACEIO Console でアプリケーションを作成し、Public ID をコピーして fio.js を読み込みます。enroll() と authenticate() をバックエンドと連携してテストしてください。

5 分で始められるシンプルな統合
fio.js、REST API、Webhook リファレンス
フレームワークに依存しないブラウザー統合
同意、削除、セキュリティのチェック