カスタム Web ログインの実装 Hive プラットフォームが提供する Web ログインページ を使用せず、Hive サーバー API を活用して直接 Web ログインを実装する方法を案内します。開発会社が独自のログイン UI を構成し、IdP 認証を直接処理したい場合は、このドキュメントを参照してください。
Note カスタム Web ログイン API を使用するには、Hive コンソールでアプリ登録および hive_certification_key の発行 が完了している必要があります。
概要 カスタム Web ログインは、次のような場合に使用します。
開発会社独自のログイン UI/UX を適用したい場合 既存の Web サイトのデザインと統一されたログイン画面を実装したい場合 Web ログインページにリダイレクトせず、独自のページ内でログインを処理したい場合 API 一覧 API Endpoint 説明 POST /game/auth/signinidp IdP ログイン POST /game/auth/connect IdP 連携 POST /game/auth/disconnect IdP 連携解除 POST /game/player/delete アカウント削除
共通リクエストヘッダー ヘッダー名 型 必須 説明 Content-Type String Y application/json 固定 Authorization String Y or N セッショントークン。トークン検証が必要な API では必須で、それ以外の場合は省略可能 ISCRYPT Integer Y 暗号化有無。0 に固定
共通レスポンスヘッダー ヘッダー名 型 説明 Authorization String 新規発行されたセッショントークン。IdP ログイン リクエスト時に require_token: true の場合にのみ発行 ISCRYPT Integer レスポンスの暗号化有無
共通レスポンス形式 成功レスポンス {
"result_code" : 0 ,
"result_msg" : "SUCCESS" ,
"data" : { }
}
失敗レスポンス {
"result_code" : 4000 ,
"result_msg" : "Request has invalid format." ,
"data" : null
}
IdP ログイン IdP 情報で新規プレイヤーを作成するか、既に登録済みの IdP の場合は既存プレイヤー情報を返します。ログインに成功すると、data.player_id で PlayerID を確認できます。
Note アカウント削除 API を使用するには、require_token を true に設定し、レスポンスヘッダーの Authorization 値を受け取る必要があります。アカウント削除機能を使用しない場合は、false に設定できます。
Request URL 環境 URL 本番 (Production) https://auth.qpyou.com/game/auth/signinidp サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/signinidp HTTP Method POST Content-Type application/json
Request Body フィールド名 型 説明 必須 appid String ゲームアプリ ID (AppID) Y idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y idp_user_id String IdP ユーザー固有識別子 Y hive_certification_key String Hive 認証キー Y require_token Boolean プレイヤートークンの要求有無。アカウント削除 API 使用時は true、未使用時は false Y
Request Body Example {
"appid" : "com.com2us.example" ,
"idp_index" : 3 ,
"idp_user_id" : "google_67890" ,
"hive_certification_key" : "your_certification_key" ,
"require_token" : true
}
フィールド名 型 説明 Content-Type String レスポンスデータ形式 (JSON) および文字エンコーディング (UTF-8) 情報 Authorization String セッショントークン
HTTP/1.1 200
Content-Type: application/json; charset = UTF-8
Authorization: abcdf7ebce779429ea878f91d5f1c8
Iscrypt: 0
Response Body フィールド名 型 説明 result_code Integer 結果コード。0 の場合は成功 result_msg String 結果メッセージ data.player_id Integer PlayerID data.idp_index Integer IdP インデックス data.idp_id String IdP 名 data.idp_user_id String IdP ユーザー ID
Response Body Sample (成功) {
"result_code" : 0 ,
"result_msg" : "SUCCESS" ,
"data" : {
"player_id" : 100000002 ,
"idp_index" : 3 ,
"idp_id" : "GOOGLE" ,
"idp_user_id" : "google_67890"
}
}
Response Body Sample (失敗) {
"result_code" : 4002 ,
"result_msg" : "Invalid certfication key"
}
エラーコード コード 説明 備考 4002 認証キーエラー 4200 存在しない IdP 5000 データベースエラー
IdP 連携 既存プレイヤーアカウントに新しい IdP を連携します。必ず IdP ログイン API でログインしてから呼び出してください。
Request URL 環境 URL 本番 (Production) https://auth.qpyou.com/game/auth/connect サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/connect HTTP Method POST Content-Type application/json
Request Body フィールド名 型 説明 必須 appid String ゲームアプリ ID (AppID) Y idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y idp_user_id String IdP ユーザー固有識別子 Y player_id Integer 連携する PlayerID Y hive_certification_key String Hive 認証キー Y
Request Body Example {
"appid" : "com.com2us.example" ,
"idp_index" : 2 ,
"idp_user_id" : "fb_12345678" ,
"player_id" : 100000001 ,
"hive_certification_key" : "your_certification_key"
}
Response Body フィールド名 型 説明 result_code Integer 結果コード。0 の場合は成功 result_msg String 結果メッセージ data.player_id Integer PlayerID data.idp_index Integer 連携された IdP インデックス data.idp_id String 連携された IdP 名 data.idp_user_id String IdP ユーザー ID
Response Body Sample (成功) {
"result_code" : 0 ,
"result_msg" : "SUCCESS" ,
"data" : {
"player_id" : 100000001 ,
"idp_index" : 2 ,
"idp_id" : "FACEBOOK" ,
"idp_user_id" : "fb_12345678"
}
}
Response Body Sample (他のプレイヤーに既に連携されている場合) {
"result_code" : 1002 ,
"result_msg" : "Already connected other player" ,
"data" : {
"player_id" : 100000002 ,
"idp_index" : 2 ,
"idp_id" : "FACEBOOK" ,
"idp_user_id" : "fb_12345678"
}
}
エラーコード コード 説明 備考 1002 該当 IdP は他のプレイヤーに既に連携されています 1003 同一の IdP タイプが既に連携されています 2002 存在しないプレイヤー 4002 認証キーエラー 4200 存在しない IdP 5000 データベースエラー
IdP 連携解除 プレイヤーアカウントから連携された IdP を解除します。必ず IdP ログイン API でログインしてから呼び出してください。
Request URL 環境 URL 本番 (Production) https://auth.qpyou.com/game/auth/disconnect サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/auth/disconnect HTTP Method POST Content-Type application/json
Request Body フィールド名 型 説明 必須 appid String ゲームアプリ ID (AppID) Y idp_index Integer IdP インデックスコード。IdP コード定義 を参照 Y idp_user_id String IdP ユーザー固有識別子 Y player_id Integer PlayerID Y hive_certification_key String Hive 認証キー Y
Request Body Example {
"appid" : "com.com2us.example" ,
"idp_index" : 2 ,
"idp_user_id" : "fb_12345678" ,
"player_id" : 100000001 ,
"hive_certification_key" : "your_certification_key"
}
Response Body フィールド名 型 説明 result_code Integer 結果コード。0 の場合は成功 result_msg String 結果メッセージ
Response Body Sample (成功) {
"result_code" : 0 ,
"result_msg" : "SUCCESS"
}
Response Body Sample (失敗) {
"result_code" : 4002 ,
"result_msg" : "Invalid certfication key"
}
エラーコード コード 説明 備考 4002 認証キーエラー 4006 連携された IdP 情報がありません 4200 存在しない IdP 7000 無効なトークン
アカウント削除 プレイヤーアカウントを削除します。必ず IdP ログイン API でログインしてから呼び出してください。
この API はトークン検証が必須のため、必ず次の作業を先に行ってください。
IdP ログイン API 呼び出し時に require_token を true に設定 IdP ログイン API のレスポンスヘッダーで受け取った Authorization 値を保存 この API を呼び出す際に、リクエストヘッダーに上記で保存した Authorization 値を含める Warning アカウント削除は元に戻せません。削除前に、ユーザーに十分な案内を提供してください。
Request URL 環境 URL 本番 (Production) https://auth.qpyou.com/game/player/delete サンドボックス (Sandbox) https://sandbox-auth.qpyou.com/game/player/delete HTTP Method POST Content-Type application/json
ヘッダー名 型 説明 必須 Authorization String IdP ログイン 呼び出し時に require_token: true を設定し、レスポンスヘッダーで受け取ったセッショントークン Y
Request Body フィールド名 型 説明 必須 appid String ゲームアプリ ID (AppID) Y player_id Integer 削除する PlayerID Y did Integer デバイス ID。0 固定 Y hive_certification_key String Hive 認証キー Y
Request Body Example {
"appid" : "com.com2us.example" ,
"player_id" : 100000001 ,
"did" : 0 ,
"hive_certification_key" : "your_certification_key"
}
Response Body フィールド名 型 説明 result_code Integer 結果コード。0 の場合は成功 result_msg String 結果メッセージ
Response Body Sample (成功) {
"result_code" : 0 ,
"result_msg" : "SUCCESS"
}
Response Body Sample (失敗) {
"result_code" : 7000 ,
"result_msg" : "Invalid token."
}
エラーコード コード 説明 備考 4002 認証キーエラー 7000 無効なトークン 7001 ヘッダーにトークンがありません
IdP コード定義 基本 IdP コード IDP_ID 説明 0 GUEST ゲスト 1 HIVE メンバーシップアカウント 2 FACEBOOK Facebook 3 GOOGLE Google 4 QQ QQ 5 WEIBO Weibo 6 VK VK 7 WECHAT WeChat 8 APPLE Apple Game Center 9 SIGNIN_APPLE Sign in with Apple 10 LINE LINE 11 TWITTER Twitter 12 WEVERSE Weverse 13 NAVER Naver 14 GOOGLE_PLAY_GAMES Google Play Games 15 HUAWEI Huawei 16 FUNTAP Funtap 18 STEAM Steam 19 X X (旧 Twitter) 20 TELEGRAM Telegram 21 XIAOMI Xiaomi 22 OPPO OPPO 23 VIVO VIVO
カスタム IdP コード IDP_ID 説明 1100 CUSTOM_GAME ゲーム会社提供の独自 IdP