バックエンドを統合する
サーバーサイドのサービスから Human Plugin を呼び出すためのチェックリストです。
Human Plugin は、バックエンドからのみ呼び出すことを前提としています。ブラウザやモバイルアプリには公開しないでください。受信リクエストの認証機能がありません。
1. 作成
- curl
- Node.js
curl -X POST "$HUMAN_PLUGIN_URL/v1/processes" \
-H 'Content-Type: application/json' \
-d '{
"flow": "api+humantoken",
"clientId": "client-a",
"correlationId": "onboarding-001",
"credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
"imageBase64": "<base64 selfie>"
}'
const response = await fetch(`${process.env.HUMAN_PLUGIN_URL}/v1/processes`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
flow: 'api+humantoken',
clientId: 'client-a',
correlationId: 'onboarding-001',
credential: { type: 'DUI_TYPE_NG_BVN', value: documentNumber },
imageBase64,
}),
signal: AbortSignal.timeout(60_000),
});
const body = await response.json();
if (response.status !== 201) {
// body is { message, details }
throw new Error(`Human Plugin ${response.status} ${body.message}`);
}
const { id, state, data } = body;
クライアントのタイムアウトは少なくとも 60 秒に設定してください。作成の処理には最大 30 秒かかる場合があり、これにデータベースの処理が加わります。id は作成のレスポンスでしか返されないため、クライアントが早く諦めると、完了するプロセスを見失うおそれがあります。
2. 後で必要になる情報を保存する
| 保存するもの | 理由 |
|---|---|
id | GET で使うハンドルです |
Journey の token と link(ある場合) | 作成のレスポンスでのみ返されます。Human Plugin は保存しません |
自社の correlationId | 一意である必要があります。503 の後を除き、再試行を含めて試行ごとに新しい値を生成してください |
3. 結果を読み取る
stateがPROCESS_STATE_FINISHEDの場合は、dataから結果を読み取ります。humanToken(再検証ではhumanTokenMatch)、liveness、ndocsです。完了は承認と同じ意味ではありません。stateがPROCESS_STATE_CREATEDの場合は、状態が変わるまでバックオフを入れてGET /v1/processes/{id}をポーリングします。プロセスを進めるものは他にありません。stateがPROCESS_STATE_FAILEDの場合、プロセスは結果なしで終了しています。フローが許すなら、新しいプロセスを開始してください。