シングルメソッドフロー
製品の静的設定を使用するのではなく、API呼び出しを通じて確認方法を動的に選択する必要がある場合、メソッド固有のエンドポイントを使用して確認方法を選択するカスタムUIを作成できます。このアプローチにより、どの確認方法が提示され、ユーザーがそれらをどのように選択するかを完全に制御できます。
確認方法が製品設定によって決定される推奨アプローチについては、ウォーターフォールフローを参照してください。
メソッド固有のエンドポイント
メソッド固有のエンドポイントは、自動的な方法選択をバイパスし、選択された方法の確認プロセスに直接進みます。k-IDは、いくつかのメソッド固有のエンドポイントを提供します:
確認方法の詳細情報(利用可能な方法とその仕組みを含む)については、確認方法ガイドを参照してください。利用可能なすべての年齢確認エンドポイントの完全なリストについては、APIリファレンスの年齢確認エンドポイントを参照してください。
カスタム確認UIの作成
メソッド固有のエンドポイントを使用すると、以下を行うカスタムUIを構築できます:
- ユーザーに利用可能な確認方法を表示する
- ユーザーに希望する方法を選択させる
- 選択に基づいて適切なエンドポイントを呼び出す
- 選択された方法が失敗した場合、他の方法にフォールバックする
リクエスト形式
すべての年齢確認エンドポイントは、同じリクエスト形式を使用します:
| プロパティ | 説明 | 必須? |
|---|---|---|
jurisdiction | 年齢確認が行われる管轄区域 | はい |
criteria | 年齢確認の基準 | はい |
subject.email | ユーザーがメールアドレスで他のコンテキストでk-IDで年齢を確認した場合、ユーザーに再度確認するよう求める代わりに、元の年齢が返されます | いいえ |
subject.claimedAge | ユーザーが年齢ゲートで年齢を尋ねられた場合、年齢推定プロセスに通知するために使用されます | いいえ |
subject.id | 複数の確認方法にわたって複数の失敗した試行を報告するために使用される識別子 | いいえ |
リクエストの例
POST /api/v1/age-verification/perform-facial-age-estimation
Content-Type: application/json
Authorization: Bearer your-api-key
{
"jurisdiction": "US-CA",
"criteria": {
"ageCategory": "ADULT"
},
"subject": {
"claimedAge": 23
}
}
レスポンス形式
すべての年齢確認エンドポイントは、同じレスポンス形式を返します:
| プロパティ | 説明 |
|---|---|
id | 一意の確認ID |
url | iframeでユーザーに提示する必要がある年齢確認URL |
レスポンスの例
{
"id": "7854909b-9124-4bed-9282-24b44c4a3c97",
"url": "https://family.k-id.com/verify?token=eyJhbGciOiJFUzM4NCIs..."
}
確認ウィジェットの埋め込み
確認URLを受信したら、標準的なアプローチとまったく同じようにiframeに埋め込みます:
<iframe
src="VERIFICATION_URL"
width="100%"
height="600"
frameborder="0"
allow="camera;payment;publickey-credentials-get;publickey-credentials-create">
</iframe>
確認結果の受信
実装では、クライアント側とサーバー側の方法を組み合わせて使用する必要があります:クライアント側のイベントはUI要素を制御するのに最適ですが、データの整合性については、実際の結果はwebhookまたは/age-verification/get-statusへの呼び出しから取得する必要があります。
クライアント側(DOMイベント)
確認が完了したときに応答性の高いUI更新にDOMイベントを使用します。イベント構造の詳細については、Verification.Resultを参照してください。
window.addEventListener('message', (event) => {
if (!event.origin.endsWith('.k-id.com')) {
return;
}
const message = event.data;
if (message.eventType === 'Verification.Result') {
if (message.data.status === 'PASS') {
// ユーザーが確認に合格 - UIを即座に更新
console.log('Age verified:', message.data.ageCategory);
updateUI();
} else if (message.data.status === 'FAIL') {
// ユーザーが確認に失敗 - UIを即座に更新
console.log('Verification failed:', message.data.failureReason);
updateUI();
}
}
});
サーバー側(webhooks、API呼び出し)
データの整合性と信頼性の高い状態管理にwebhooksまたはAPI呼び出しを使用します。データの整合性については、DOMイベントのみに依存するのではなく、webhooksからのイベントまたは/age-verification/get-statusへの呼び出しで結果を常に確認してください。
Webhooks
webhookイベント構造の詳細については、Verification.Resultを参照してください。
Verification.Resultイベントを受信するwebhookエンドポイントを設定します。詳細については、Webhooksを参照してください。
API呼び出し
確認IDで/age-verification/get-statusを使用して確認ステータスをクエリできます。これは、結果が送信されたときにwebhookが到達不能だった場合に役立ちます。
年齢異議申し立て
確認が失敗した場合、/age-verification/perform-age-appealエンドポイントを呼び出すことで、ユーザーに異議申し立てを許可できます。これにより、ユーザーにID確認と信頼できる大人の証明オプションが提示されます(年齢推定は異議申し立てでは利用できません)。
利用可能なエンドポイント
以下は、一般的なメソッド固有の年齢確認エンドポイントです:
| エンドポイント | 説明 |
|---|---|
/age-verification/perform-facial-age-estimation | 顔年齢推定のみを提供 |
/age-verification/perform-id-verification | ID文書確認のみを提供 |
/age-verification/perform-age-key-verification | AgeKey確認のみを提供 |
/age-verification/perform-connect-id-verification | ConnectID確認のみを提供 |
/age-verification/perform-inference | メール年齢推定のみを提供 |
/age-verification/perform-age-appeal | 以前に失敗した確認用(ID確認と信頼できる大人の証明のみ) |
/age-verification/get-status | 確認のステータスをクエリ |
利用可能なすべての年齢確認エンドポイントの完全で最新のリストについては、APIリファレンスの年齢確認エンドポイントを参照してください。