コンテンツにスキップ

ユーザーデータの確認

ログインに成功した場合、ログインしたユーザーのプロフィール情報と停止情報を確認できます。

ユーザープロファイルの公開

Hive SDKは、アプリ内のウェブビューでユーザープロフィールを表示する機能を提供します。プロフィール画面を表示するには、次の手順に従う必要があります。

  1. 開発者は、アプリ内でプロフィールを表示できるボタンまたはUI要素を実装します。\n2. ユーザーがアプリ内でこのボタンまたはUI要素を選択すると、アプリはHive SDKの認証機能を利用してAuthV4.showProfileを呼び出します。


AuthV4.showProfileを呼び出すと、SDKが提供するプロフィール画面が表示されます。ユーザーはプロフィール画面でプロフィール画像とニックネームを確認・変更できます。 ユーザーがプロフィールを設定する前は、プロフィール画像はデフォルト画像で表示され、ニックネームは自動的にランダムに付与されます。

Note

ユーザーの接続国が中国の場合、プロフィール画面でプロフィール画像の表示および編集機能は提供されません。


これはプロファイルを公開する例のコードです。

APIリファレンス: AuthV4.showProfile

using hive;    
    // ログインしているユーザーのplayerId    
    Int64 playerId = 12345;    
    AuthV4.showProfile(playerId, (ResultAPI result) => {    
        if (result.isSuccess()) {    
            // 成功した呼び出し    
        }    
});

APIリファレンス: AuthV4::showProfile

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    // ログイン中のユーザーのplayerId    
    long long playerId = 12345;    
    AuthV4::showProfile(playerId, [=](ResultAPI const & result){    
        if (result.isSuccess()) {    
            // 呼び出し成功    
        }    
});

APIリファレンス: AuthV4.showProfile

import com.hive.AuthV4;
import com.hive.ResultAPI;
    // ログイン中のユーザーのplayerId    
    val playerId = 12345L    
    AuthV4.showProfile(playerId, object : AuthV4.AuthV4ShowProfileListener{    
        override fun onAuthV4ShowProfile(result: ResultAPI) {    
            if (result.isSuccess) {    
                // 呼び出し成功    
            }    
        }    
})

APIリファレンス: AuthV4.INSTANCE.showProfile

import com.hive.AuthV4;    
    import com.hive.ResultAPI;    
    // ログインしているユーザーのplayerId    
    long playerId = 12345;    
    AuthV4.INSTANCE.showProfile(playerId, result -> {    
        if (result.isSuccess()) {    
            // 成功した呼び出し    
        }    
});

APIリファレンス: AuthV4Interface.showProfile

import HIVEService    
    // playerId of the logged-in user    
    let playerId: Int64 = 12345    
    AuthV4Interface.showProfile(playerId) { result in    
        if result.isSuccess() {    
            // Call successful    
        }    
}

APIリファレンス: [HIVEAuthV4 showProfile]

#import <HIVEService/HIVEService-Swift.h>    
    // ログインユーザーのplayerId    
    long long playerId = 12345;    
    [HIVEAuthV4 showProfile: playerId handler: ^(HIVEResultAPI *result) {    
        if ([result isSuccess]) {    
            // 呼び出し成功    
        }    
}];
#include "HiveAuthV4.h"

// ログイン中のユーザーのPlayerId
int64 PlayerId = 12345;

FHiveAuthV4::ShowProfile(PlayerId, FHiveAuthV4OnShowProfileDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // Call succeeded
        }
}));


プロフィール画面の使用は基本的に開発者の裁量に委ねられています。ただし、Hive Membership IdPを提供する場合は、showProfile()を実装する必要があります。これは、Hive メンバーシップが、プロフィール画面のHive アカウント設定においてパスワード変更および退会機能を提供するためです。

Hive メンバーシップ IdP 統合ステータスプロファイル ゲストおよびその他の IdP 統合ステータスプロファイル


たとえ Hive がメンバーシップ IdP 以外の IdP のみを提供していても、プロフィール画面を表示することで、海外からのログインをブロックしたり、完全にログアウトしたり、ログイン履歴を確認するなどのセキュリティ機能を提供できます。したがって、showProfile() を使用してプロフィール画面の表示を実装することをお勧めします。

ユーザープロファイルチェック

ユーザーがサインインすると、**AuthV4**クラスのgetProfile()メソッドを呼び出すことでユーザープロフィールデータを取得できます。プロフィールデータには、表示名用のplayerIdplayerName、およびユーザーサムネイル画像用のplayerImageUrlが含まれています。

以下はプロフィールデータを受信するためのサンプルコードです。

APIリファレンス: hive.AuthV4.getProfile

hiveを使用しています;

List<Int64> playerIdList = new List();
playerIdList.Add(0123);
playerIdList.Add(4567);

AuthV4.getProfile(playerIdList, (ResultAPI result, List profileInfoList) => {
    if (!result.isSuccess()) {
return;
    }

    if (profileInfoList != null) {
        foreach (ProfileInfo profileInfo in profileInfoList) {
        // PlayerName: profileInfo.playerName
        // PlayerId: profileInfo.playerId
        }
    }
});
#include "HiveAuthV4.h"

TArray<int64> PlayerIdArray;
PlayerIdArray.Add(1234);
PlayerIdArray.Add(5678);

FHiveAuthV4::GetProfile(PlayerIdArray, FHiveAuthV4OnGetProfileDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveProfileInfo> ProfileInfoArray) {
        if (!Result.IsSuccess()) {
                return;
        }

        for (const auto& ProfileInfo : ProfileInfoArray)
        {
                // PlayerName: ProfileInfo.PlayerName;
                // PlayerId : ProfileInfo.ProfileInfo;
        }
}));

API リファレンス: AuthV4::getProfile

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

vector<PlayerID> playerIdList;
playerIdList.push_back(0123);
playerIdList.push_back(4567);

AuthV4::getProfile(playerIdList, [=](ResultAPI const & result, vector<ProfileInfo> const & profileInfoList) {
    if (!result.isSuccess()) {
return;
}

if (profileInfoList != null) {
    for (auto profileInfo : profileInfoList) {
        // PlayerName: profileInfo.playerName
        // PlayerId: profileInfo.playerId
        }
    }
});

APIリファレンス: AuthV4.getProfile

import com.hive.AuthV4
import com.hive.ResultAPI

val playerIdList = arrayListOf<Long>(
    1234,
    4567
)

AuthV4.getProfile(playerIdList, object : AuthV4.AuthV4GetProfileListener {
    override fun onAuthV4GetProfile(result: ResultAPI, profileInfoList: ArrayList<AuthV4.ProfileInfo>?) {
        if (!result.isSuccess) {
            return
        }

        if (profileInfoList != null) {
            for (i in 0 until profileInfoList.size) {
                // PlayerName: profileInfoList[i].playerName
                // PlayerId: profileInfoList[i].playerId
            }
        }
    }
})

APIリファレンス: com.hive.AuthV4.getProfile

import com.hive.AuthV4;
import com.hive.ResultAPI;

ArrayList<Long> playerIdList = new ArrayList<>(Arrays.asList(
        1234L,
        5678L
));

AuthV4.INSTANCE.getProfile(playerIdList, (result, profileInfoList) -> {
    if (!result.isSuccess()) {
        return;
    }

    if (profileInfoList != null) {
        for (AuthV4.ProfileInfo profileInfo : profileInfoList) {
            // PlayerName: profileInfo.getPlayerName();
            // PlayerId: profileInfo.getPlayerId();
        }
    }
});

API リファレンス: AuthV4Interface.getProfile

import HIVEService

var playerIdList = [Int64]()
playerIdList.append(0123)
playerIdList.append(4567)

AuthV4Interface.getProfile(playerIdList) { result, profileInfoList in
    if !result.isSuccess() {
    return
    }

    if let profileInfoList = profileInfoList {
        for (profileInfo in profileInfoList) {
        // PlayerName: profileInfo.playerName
        // PlayerId: profileInfo.playerId
        }
    }
}

API Reference: HIVEAuthV4:getProfile

#import <HIVEService/HIVEService-Swift.h>

NSMutableArray<NSNumber *> *playerIdList = [[[NSMutableArray] alloc] init];
[playerIdList addObject: [NSNumber numberWithLongLong:0123]];
[playerIdList addObject: [NSNUmber numberWithLongLong:4567]];

[HIVEAuthV4 getProfile: playerIdList handler: ^(HIVEResultAPI *result, NSArray<HIVEProfileInfo *> *profileInfoList) {
    if (![result isSuccess]) {
    return;
    }
    if (profileInfoList != nil) {
        for (HIVEProfileInfo *profileInfo in profileInfoList) {
        // PlayerName: profileInfo.playerName
        // PlayerId: profileInfo.playerId
        }
    }
}];

ブラックリストの確認

ユーザーがサインインするか、IdPと同期すると、Hive SDKは自動的にブラックリストをチェックし、ユーザーをゲームプレイから一時停止します。ゲーム中にユーザーの一時停止状態を確認する必要がある場合は、checkBlacklist()メソッドを使用して、リアルタイムでユーザーの一時停止状態を確認し、ゲームプレイを制限してください。checkBlacklist()呼び出し時のisShowパラメータの値に応じて、Hive SDKは一時停止状態のポップアップを直接表示するか、一時停止状態のポップアップをカスタマイズするためのポップアップコンテンツを返します。

  • 提供されたサスペンションポップアップの使用: isShowパラメータをtrueに設定します。
  • カスタマイズされたサスペンションポップアップの使用: isShowパラメータをfalseに設定します。ポップアップデータに関する詳細は、以下のsuspension popup Data Returned by Hive SDKを参照してください。

  • サスペンションポップアップの例画面

Hive SDKによって返されたサスペンションポップアップデータ

checkBlacklist()メソッドの呼び出しが成功した場合、Hive SDKはAuthV4MaintenanceInfoオブジェクトを通じて以下の表の値を返します。

フィールド名 説明 タイプ
title ポップアップのタイトル 文字列
message ポップアップの内容 文字列
button ポップアップボタンのラベルに表示されるテキスト 文字列
action ユーザーがポップアップボタンをタップしたときのアクションタイプ
* OPEN_URL: 外部ブラウザによって渡されたURLを実行する
* EXIT: アプリを終了する
* DONE: メンテナンスポップアップを閉じるだけ
AuthV4MaintenanceActionTypeの列挙型
url 外部ブラウザによって表示されるURL。これはactionフィールドの値がOPEN_URLのときに有効です 文字列
remainingTime メンテナンス完了までの残り時間(単位:秒)。時間はリアルタイムで更新され、ゼロになるとアプリが終了します。 整数

以下は、停止中のユーザーを確認するためのサンプルコードです。

  • Hive SDK UIを使用しない場合(isShow = false)

API リファレンス: hive.AuthV4.checkBlacklist

using hive;

Boolean isShow = false;

AuthV4.checkBlacklist(isShow, (ResultAPI result, List<AuthV4.MaintenanceInfo> maintenanceInfo) => {
    if (!result.isSuccess()) {
        // サスペンションの確認リクエストに失敗しました
        return;
    }

    if(maintenanceInfo != null){
        // 一時停止中のユーザーの場合
    } else{
        // 一般ユーザーの場合
    }
});
#include "HiveAuthV4.h"

bool bIsShow = false;
FHiveAuthV4::CheckBlacklist(bIsShow,
                                                            FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {
        if (!Result.IsSuccess()) {
                // サスペンションの確認リクエストが失敗しました
                return;
        }

        if (AuthV4MaintenanceInfoArray.Num() > 0) {
                //  サスペンドされたユーザーの場合
        } else {
                // 一般ユーザーの場合
        }
}));

APIリファレンス: AuthV4.checkBlacklist

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

bool isShow = false;

AuthV4::checkBlacklist(isShow, [=](ResultAPI const & result, vector<AuthV4MaintenanceInfo> const & maintenanceInfo) {
    if(!result.isSuccess) {
        // サスペンションの確認リクエストが失敗しました
        return;
    }

    if (maintenanceInfo != null){
        // 一時停止中のユーザーの場合
    } else {
        // 一般ユーザーの場合
    }
});

APIリファレンス: AuthV4.checkBlacklist

    import com.hive.AuthV4
    import com.hive.ResultAPI

    val isShow = false

    AuthV4.checkBlacklist(isShow, object : AuthV4.AuthV4MaintenanceListener {
        override fun onAuthV4Maintenance(result: ResultAPI, maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?) {
            if (!result.isSuccess) {
                // 停止確認のリクエストに失敗しました
                return
            }

            if (maintenanceInfo != null) {
                // サスペンドされたユーザーの場合
            } else {
                // 一般ユーザーの場合
            }
        }
    })

APIリファレンス: com.hive.AuthV4.checkBlacklist

    import com.hive.AuthV4;
    import com.hive.ResultAPI;

    boolean isShow = false;

    AuthV4.INSTANCE.checkBlacklist(isShow, (result, maintenanceInfo) -> {
        if (!result.isSuccess()) {
            // サスペンションの確認リクエストが失敗しました
            return;
        }

        if (maintenanceInfo != null) {
            // 一時停止中のユーザーの場合
        } else {
            // 一般ユーザーの場合
        }
    });

API リファレンス: AuthV4Interface.checkBlacklist

    import HIVEService

    let isShow = false

    AuthV4Interface.checkBlacklist(isShow) { result, maintenanceInfo in
        if !result.isSuccess() {
        // サスペンションの確認リクエストが失敗しました
            return
        }

        if let maintenanceInfo = maintenanceInfo {
        // サスペンドされたユーザーの場合
        } else {
        // 一般ユーザーの場合
        }
    }

APIリファレンス: HIVEAuthV4:checkBlacklist

    #import <HIVEService/HIVEService-Swift.h>

    BOOL isShow = NO;

    [HIVEAuthV4 checkBlackList: isShow handler: ^(HIVEResultAPI *result, HIVEAuthV4MaintenanceInfo *maintenanceInfo) {
        if (![result isSuccess]) {
        // サスペンションの確認リクエストに失敗しました
        return;
        }

        if (maintenanceInfo != nil) {
        // サスペンドされたユーザーの場合
        } else {
        // 一般ユーザーの場合
        }
    }];
  • Hive SDK UI (isShow = true) を使用する場合

API リファレンス: hive.AuthV4.checkBlacklist

// If isShow is true, Hive SDK displays suspension popup.
    Boolean isShow = true;

    // Hive SDK AuthV4 リクエストは、ユーザーが停止されているかどうかを確認します。
    AuthV4.checkBlacklist(isShow, (ResultAPI result, List<AuthV4.MaintenanceInfo> maintenanceInfo)=>{
    if (result.isSuccess()) {
        // 通常のユーザーの場合
    }    else if (result.needExit()) {

    // TODO: アプリの終了を実装する。
     // 例) Application.Quit();    }});
#include "HiveAuthV4.h"

// isShowがtrueの場合、Hive SDKはサスペンションポップアップを表示します。
bool bIsShow = true;

// Hive SDK AuthV4 リクエストは、ユーザーが停止されているかどうかを確認します。
FHiveAuthV4::CheckBlacklist(bIsShow,
                                                            FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {
        if (Result.IsSuccess()) {
                // 通常のユーザーの場合
        } else if (Result.NeedExit() {
                // TODO: アプリの終了を実装します。
                // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        }
}));

APIリファレンス: AuthV4.checkBlacklist

// isShowがtrueの場合、Hive SDKはサスペンションポップアップを表示します。
    bool isShow = true;

    // Hive SDK AuthV4 リクエストは、ユーザーが停止されているかどうかを確認します。
    AuthV4::checkBlacklist(isShow,  [=](ResultAPI const & result,std::vector<AuthV4MaintenanceInfo> const & maintenanceInfolist){
    if (result.isSuccess()) {
        // 通常のユーザーの場合
    }    else if (result.needExit()) {
        // TODO: アプリの終了を実装します。
        // Cocos2d-x エンジンのユーザー
        // ex) exit(0);
        // Unreal エンジンのユーザー
        // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);    }});

APIリファレンス: AuthV4.checkBlacklist

// isShowがtrueの場合、Hive SDKはサスペンションポップアップを表示します。
    val isShow = true

 // Hive SDK AuthV4 リクエストは、ユーザーが停止されているかどうかを確認します。
AuthV4.checkBlacklist(isShow, object : AuthV4.AuthV4MaintenanceListener {
 override fun onAuthV4Maintenance(
result: ResultAPI,
maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?    ) {        if (result.isSuccess) {
    // 通常のユーザーの場合
} else if (result.needExit()) {
    // TODO: アプリの終了を実装します。
    // 例) exitProcess(0)        }    }})

APIリファレンス: com.hive.AuthV4.checkBlacklist

// If isShow is true, Hive SDK displays suspension popup.
boolean isShow = true;

// Hive SDK AuthV4 リクエストは、ユーザーが一時停止されているかどうかを確認します。
AuthV4.checkBlacklist(isShow, new AuthV4.AuthV4MaintenanceListener() {
@Override
public void onAuthV4Maintenance(ResultAPI result, ArrayList<AuthV4.AuthV4MaintenanceInfo> maintenanceInfo) {
    if (result.isSuccess()) {
        // 通常のユーザーの場合
    }        else if (result.needExit()) {
        // TODO: アプリの終了を実装します。
        // 例) System.exit(0);        }    }});

API リファレンス: AuthV4Interface.checkBlacklist

// If isShow is true, Hive SDK displays suspension popup.
    let isShow = true

// Hive SDK AuthV4 リクエストは、ユーザーが停止されているかどうかを確認します。
AuthV4Interface.checkBlacklist(isShow) { (result, maintenanceInfolist) in
if result.isSuccess() {
    // 通常のユーザーの場合
}
else if result.needExit() {
    // TODO: アプリの終了を実装します。
    // 例) exit(0) 
}

APIリファレンス: HIVEAuthV4:checkBlacklist

// If isShow is YES, Hive SDK displays suspension popup.
    BOOL isShow = YES;

// Hive SDK AuthV4 リクエストは、ユーザーが一時停止されているかどうかを確認します。
[HIVEAuthV4 checkBlacklist:isShow handler:^(HIVEResultAPI *result, NSArray<HIVEAuthV4MaintenanceInfo *> *maintenanceInfolist) {
if (result.isSuccess) {
    // 通常のユーザーの場合
}    else if (result.needExit) {
    // TODO: アプリの終了を実装します。
    // 例) exit(0);             }}];

ユーザーのメールアドレスを使用する

ゲーム会社は、ログインしたユーザープロフィール情報にメール情報を収集する機能を提供しています。メール情報を収集するには、Hive コンソールで機能を有効にする必要があります。

まず、以下のIDPリストから「メールを収集できるIDP」からメールを収集するための許可を取得する必要があります。

  • メール収集に利用可能なIdP: Google、Facebook、Huawei (Android)、メンバーシップ、Apple (iOS)
  • IdPから収集できないメール: Google Play Games、Apple Game Center、QQ、VK、WeChat、Line、Weverse, Steam, X


<

明示的ログインAPIを呼び出した後、コールバックで返されるPlayerInfoクラスのインスタンス内のproviderInfoDataを参照することで、ログインしているユーザーのメールアドレスを取得できます。

providerInfoDataのキーとしてProviderTypeを使用して、ProviderInfoを取得します。詳細については、以下の例コードを参照してください。

APIリファレンス: hive.AuthV4.showSignIn

// Request Hive SDK AuthV4 Authentication UI
AuthV4.showSignIn((ResultAPI result, AuthV4.PlayerInfo playerInfo)=>{
if (result.isSuccess()) {
    // 認証成功
    // playerInfo: 認証されたユーザー情報

    // メール情報を取得する例
    foreach (KeyValuePair<AuthV4.ProviderType , AuthV4.ProviderInfo> entry in playerInfo.providerInfoData) {

        AuthV4.ProviderInfo providerInfo = entry.Value;
        if(providerInfo.providerEmail != null && providerInfo.providerEmail != "") {
            string email = providerInfo.providerEmail;
            break;
         }        
        }    
    }    
    else if (result.needExit()) {
        // TODO: アプリの終了を実装する
        // 例) Application.Quit();    
    }
});
#include "HiveAuthV4.h"

// リクエスト Hive SDK AuthV4 認証 UI
FHiveAuthV4::ShowSignIn(FHiveAuthV4OnSignInDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePlayerInfo& PlayerInfo) {
        if (Result.IsSuccess()) {
                // 認証成功
      // playerInfo: 認証されたユーザー情報

                // メール情報を取得する例
                for (const auto& ProviderInfoEntry : PlayerInfo.ProviderInfoData) {
                        FHiveProviderInfo ProviderInfo = ProviderInfoEntry.Value;
                        FString Email = ProviderInfo.ProviderEmail;
                }
        } else if (Result.NeedExit()) {
                 // TODO: アプリの終了を実装する
      // Cocos2d-xエンジンのユーザー
      // ex) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        }
}));

APIリファレンス: AuthV4::showSignIn

// リクエスト Hive SDK AuthV4 認証 UI
AuthV4::showSignIn([=](ResultAPI const & result, PlayerInfo const & playerInfo) {
    if (result.isSuccess()) {
        // 認証成功
        // playerInfo: 認証されたユーザー情報

        // メール情報を取得する例
        for(auto it = playerInfo.providerInfoData.begin(); it != playerInfo.providerInfoData.end(); ++it) {
            hive::ProviderInfo providerInfo = it->second;
            if(!providerInfo.providerEmail.empty()) {
                std::string email = providerInfo.providerEmail;
                break;
            }
        }
    }
    else if (result.needExit()) {
        // TODO: アプリの終了を実装する
        // Cocos2d-xエンジンのユーザー
        // 例) exit(0);
        // Unrealエンジンのユーザー
        // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
    }
});

APIリファレンス: com.hive.AuthV4.showSignIn

// リクエスト Hive SDK AuthV4 認証 UI
AuthV4.showSignIn(object : AuthV4.AuthV4SignInListener{
override fun onAuthV4SignIn(result: ResultAPI, playerInfo: AuthV4.PlayerInfo?) {
    if (result.isSuccess) {
        // 認証成功
        // playerInfo: 認証されたユーザー情報

        // メール情報を取得する例
        playerInfo?.let {
            for ((key, value) in it.providerInfoData) {
                var providerInfo: AuthV4.ProviderInfo = value
                if(providerInfo.providerEmail.isNotEmpty()) {
                    val email = providerInfo.providerEmail
                    break
                }
            }
        }
    } else if (result.needExit()) {
            // TODO: アプリの終了を実装する
            // 例) exitProcess(0)
        }
    }
})

APIリファレンス: com.hive.AuthV4.showSignIn

// リクエスト Hive SDK AuthV4 認証 UI
AuthV4.showSignIn(new AuthV4.AuthV4SignInListener() {
    @Override
    public void onAuthV4SignIn(ResultAPI result, AuthV4.PlayerInfo playerInfo) {

        if (result.isSuccess()) {
            // 認証成功
            // playerInfo: 認証されたユーザー情報

            // メール情報を取得する例
            if(playerInfo != null) {
                for (Map.Entry<AuthV4.ProviderType , AuthV4.ProviderInfo> entry : playerInfo.getProviderInfoData().entrySet()) {
                    AuthV4.ProviderInfo providerInfo = entry.getValue();
                    if (providerInfo.getProviderEmail() != "") {
                        String email = providerInfo.getProviderEmail();
                        break;
                    }                
                }            
            }        
        }        
        else if (result.needExit()) {
            // TODO: アプリの終了を実装する
            // 例) System.exit(0);        
        }    
    }
});

APIリファレンス: HIVEAuthV4:showSignIn

var email = String()

// リクエスト Hive SDK AuthV4 認証 UI
AuthV4Interface.showSignIn { (result, playerInfo) in

    if result.isSuccess() {
        // 認証成功
        // playerInfo: 認証されたユーザー情報

        // メール情報を取得する例
        if let playerInfo = playerInfo {
            // providerEmailが存在するproviderInfoを見つける(現在サインインしているプロバイダー)
            for key in playerInfo.providerInfoData.keys {
                if let providerInfo = playerInfo.providerInfoData[key],
                providerInfo.providerEmail.count > 0 {
                    // providerEmail != ""
                    email = providerInfo.providerEmail
                    break
                }
            }
        }
    } else if result.needExit() {
        // TODO: アプリの終了を実装する
        // 例) exit(0)
    }
} 

APIリファレンス: HIVEAuthV4:showSignIn

__block NSString* email = @"";

// リクエスト Hive SDK AuthV4 認証 UI
[HIVEAuthV4 showSignIn:^(HIVEResultAPI *result, HIVEPlayerInfo *playerInfo) {

    if([result isSuccess]){
        // 認証成功
        // playerInfo: 認証されたユーザー情報

        // メール情報を取得する例
        if(playerInfo != nil) {
            // providerEmailが存在するproviderInfoを見つける(現在のサインインのプロバイダー)
            for (NSString* key in playerInfo.providerInfoData.allKeys) {
                HIVEProviderInfo* providerInfo = playerInfo.providerInfoData[key];
                if (providerInfo != nil && providerInfo.providerEmail.length > 0) {
                    // providerEmail != ""
                    email = providerInfo.providerEmail;
                    break;
                }
            }
        }
    } else if ([result needExit]) {
        // TODO: アプリの終了を実装する
        // 例) exit(0);
    }
}];
Note

ゲストログインとカスタムログインには、ProviderInfoにメール情報が含まれていません。これは空の文字列("")として返されます。

ユーザーのメール情報がない場合、ProviderInfoのメール情報は空の文字列("")として返されます。


ユーザー認証情報

ログイン完了後、AuthV4.getPlayerInfoを呼び出してログイン中のユーザーの認証情報を確認します。ネットワーク通信を行わず、UI を表示せずに、現在実行中のアプリのログイン中のユーザーの認証情報をすぐに返します。

AuthV4.getPlayerInfoを呼び出すコードの例を以下に示します。

API リファレンス: AuthV4.getPlayerInfo

using hive;    
string playerName = AuthV4.getPlayerInfo().playerName;    

API リファレンス: AuthV4::getPlayerInfo

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;    
PlayerInfo info = AuthV4::getPlayerInfo();

API リファレンス: AuthV4.getPlayerInfo

import com.hive.AuthV4;
val playerInfo = AuthV4.getPlayerInfo()    

API リファレンス: AuthV4.INSTANCE.getPlayerInfo

import com.hive.AuthV4;    
import com.hive.ResultAPI;    
PlayerInfo playerInfo = AuthV4.INSTANCE.getPlayerInfo();

API リファレンス: AuthV4Interface.getPlayerInfo

import HIVEService    
HIVEPlayerInfo *playerInfo = [HIVEAuthV4 getPlayerInfo];   

API リファレンス: [HIVEAuthV4 showProfile]

#import <HIVEService/HIVEService-Swift.h>    
let playerInfo = AuthV4Interface.getPlayerInfo()
#include "HiveAuthV4.h"
TOptional<FHivePlayerInfo> PlayerInfo = FHiveAuthV4::GetPlayerInfo();


メソッド呼び出し後に返される認証情報の構成は以下のとおりです。

フィールド名 説明 タイプ
playerId Hive SDK プレイヤー ID Long
playerName Hive SDK ユーザー名 String
playerImageUrl Hive SDK ユーザー プロフィール URL String
accessToken Hive SDK 標準 JWT String
playerToken Hive SDK がサインイン検証内部で使用するトークン String
did Hive SDK デバイス識別子 String
providerInfoData ログインアカウントにリンクされている IdP 情報 Map
customProviderInfoData ログインアカウントにリンクされているカスタム IdP 情報 Map
isNewUser Hive SDK 分析基準の新規ユーザー判定 Boolean