メインコンテンツに移動

はじめに

前提条件

CDKを統合する前に、以下が必要です:

  1. k-IDコンプライアンススタジオアカウント - オンボーディングの一環として、https://portal.k-id.comでサインインするアカウントが提供されるはずです。
  2. 設定済み製品 - コンプライアンススタジオで製品を作成・設定します。詳細については、コンプライアンススタジオ製品ガイドを確認してください。
  3. APIキー - 適切な環境(テスト/ライブ)の製品APIキーを取得

基本的な統合手順

  1. 製品の設定

    • 開発者ポータルで権限、データ通知、ブランディングを設定
    • 確認方法と信頼できる成人設定を設定
    • 開発用にテスト環境に設定をプッシュ
  2. ウィジェットURLの生成

    • 特定のフロー用のウィジェットURLを生成するAPI呼び出しを行う
    • 返されたURLをアプリケーション内のiframeに埋め込み
  3. JavaScriptイベントまたはWebhookイベントの処理

    • 埋め込みウィジェットからのフロントエンドイベントをリッスン
    • 結果を処理し、アプリケーション状態を適切に更新
    • または、イベントはWebhook呼び出しを通じて受信することもできます。詳細についてはWebhooksを参照してください

クイックスタート例 - アクセス年齢確認

ステップ1: ウィジェットURLの生成(バックエンド)

# Python/Flask例 - バックエンドからのみ呼び出し
import requests
import os

@app.route('/api/generate-age-verification')
def generate_age_verification():
api_key = os.environ.get('KID_API_KEY') # 環境/シークレットマネージャーに安全に保存

response = requests.post( # 製品テストモードの場合、テストAPIキーでテストエンドポイントを呼び出していることを確認してください
'https://game-api.k-id.com/age-verification/perform-access-age-verification',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'jurisdiction': 'GB',
'criteria': {
'ageCategory': 'ADULT'
}
}
)

return response.json()

ステップ2: ウィジェットの埋め込み(フロントエンド)

<!-- HTML - 必要な権限でウィジェットを埋め込み -->
<div id="verification-container">
<iframe
id="verification-widget"
src="バックエンドからのVERIFICATION_URL"
width="100%"
height="600"
frameborder="0"
allow="camera;autoplay;payment;publickey-credentials-get;publickey-credentials-create">
</iframe>
</div>

ステップ3: イベントのリッスン(フロントエンド)

// JavaScript - 確認イベントの処理
window.addEventListener('message', (event) => {
// セキュリティのためのオリジンの検証
if (event.origin !== 'https://family.k-id.com') {
return;
}

console.log('確認イベント:', event.data);

// 確認結果の処理
if (event.data.eventType === 'Verification.Result') {
const result = event.data.data;

if (result.status === 'PASS') {
// 年齢確認成功
console.log('年齢確認済み:', result.ageCategory);
console.log('使用された方法:', result.method);
// 年齢制限コンテンツへのアクセスを許可
} else if (result.status === 'FAIL') {
console.log('確認失敗:', result.failureReason);
// 確認失敗の処理
}
}
});