コンテンツにスキップ

Funtapパブリッシャー連携ガイド

概要

FuntapパブリッシャーのSoftware Development Kit(SDK)連携ガイドでは、Funtapとのパブリッシング契約を完了した後に、このSDKをAndroidゲームへ適用し、ベトナム向けパブリッシング審査用のAppraisal Buildと実サービス用のService Buildを構成する方法を説明します。Hive SDKは、ビルドタイプに応じて異なるFuntapモジュールと設定値を使用し、ログイン画面とユーザー情報更新機能に必要なUser Interface(UI)およびApplication Programming Interface(API)を連携します。この構成を適用すると、ベトナムのサービス方針と政府規制に対応したAndroidビルドを準備できます。

Appraisal Buildの適用方法

Appraisal Buildは、ベトナムのパブリッシングライセンス審査に提出するビルドです。このビルドでは、Funtapログイン機能が正常に動作する必要があります。

事前準備

Appraisal Buildの作業を開始する前に、審査用appKeyをFuntapから受け取る必要があります。Nativeではhive_config.xmlに、Unityでは上部ツールバー > Hive > HiveConfig > OptionalのFuntap appKey項目にこの値を入力します。値が用意されていない場合、Step 3を完了できません。

Step 1. Funtap-Appraisalライブラリの設定

Nativeでは、モジュールレベルのbuild.gradleファイルにAppraisal用の依存関係を追加します。

// Funtap Appraisalモジュール
implementation "com.com2us.android.hive:hive-authv4-provider-funtap-appraisal"

Unityでは、上部ツールバー > HiveExternalDependencyをクリックした後、Funtap-Appraisal項目をチェックします。

Step 2. Funtap-Appraisalライブラリの権限設定

Funtap-Appraisalライブラリを連携するため、AndroidManifest.xmlファイルに次の権限設定を追加します。

Nativeでは、モジュールレベルのAndroidManifest.xmlファイルに権限を追加します。

  • <project>/app/src/main/AndroidManifest.xml

Unityでは、Plugins/AndroidパスのAndroidManifest.xmlファイルに権限を追加します。

  • <project>/Assets/Plugins/Android/AndroidManifest.xml

次の権限を追加します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

Step 3. Funtapパブリッシャー設定値(appKey)の適用

Nativeでは、hive_config.xmlファイルにFuntapパブリッシャーから受け取ったappKeyを追加します。

<funtap-appraisal appKey="YOUR_APP_KEY" />

Unityでは、上部ツールバー > Hive > HiveConfigOptionalをクリックした後、FuntapのappKey項目に発行されたキーを入力します。

Step 4. Funtapログイン動作の確認

Appraisal Buildでは、Funtapログインを呼び出して、ログイン画面が正常に表示され、ログインに成功するかを確認します。Hive SDKはFuntap SDKを内包しており、AuthV4.signIn()呼び出し時にProviderType.FUNTAPを使用します。ログインに成功すると、パブリッシャー連携に必要な後続処理はFuntap SDK内部で自動的に進行します。

Caution

ProviderType.FUNTAPログインはAppraisal Buildでのみ使用します。Service Buildではこのログインタイプを使用しません。

using hive;

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, (ResultAPI result, AuthV4.PlayerInfo playerInfo) => {
    if (result.isSuccess()) {
        // ProviderType FUNTAPログイン成功
    }
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

AuthV4::signIn(ProviderType::FUNTAP, [=](ResultAPI const & result, PlayerInfo const & playerInfo) {
    if (result.isSuccess()) {
        // ProviderType FUNTAPログイン成功
    }
});
import com.hive.AuthV4
import com.hive.ResultAPI

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, object : AuthV4.AuthV4SignInListener {
    override fun onAuthV4SignIn(result: ResultAPI, playerInfo: AuthV4.PlayerInfo?) {
        if (result.isSuccess) {
            // ProviderType FUNTAPログイン成功
        }
    }
})
import com.hive.AuthV4;
import com.hive.ResultAPI;

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, (result, playerInfo) -> {
    if (result.isSuccess()) {
        // ProviderType FUNTAPログイン成功
    }
});

Service Buildの適用方法

Service Buildは、ベトナムのパブリッシングライセンス取得後に実サービスを運用するビルドです。このビルドでは、サービス用Funtapモジュールとtoken設定を使用します。

事前準備

Service Buildの作業を開始する前に、サービス用tokenをFuntapから受け取る必要があります。Nativeではhive_config.xmlに、Unityでは上部ツールバー > Hive > HiveConfig > OptionalのFuntap token項目にこの値を入力します。値が用意されていない場合、Step 2を完了できません。

Note

Hiveコンソール > プロビジョニング > SDK設定では、Hive SDK v4 Androidに限り、ログイン後にFuntap本人認証を表示するかどうかを制御できます。

Service Build機能は、ゲームですでに適用したログインフローを先に完了した後に使用します。ログインに成功すると、PlayerInfoレスポンスで受け取ったPlayerIDを以後Funtap APIのuserIdとして使用します。

Step 1. Funtapライブラリの設定

Nativeでは、モジュールレベルのbuild.gradleファイルにサービス用の依存関係を追加します。

// Funtap Serviceモジュール
implementation "com.com2us.android.hive:hive-authv4-provider-funtap"

Unityでは、上部ツールバー > HiveExternalDependencyをクリックした後、Funtap項目をチェックします。

Step 2. Funtapパブリッシャー設定値(token)の適用

Nativeでは、hive_config.xmlファイルにFuntapパブリッシャーから受け取ったtokenを追加します。

<funtap token="YOUR_TOKEN" />

Unityでは、上部ツールバー > Hive > HiveConfigOptionalをクリックした後、Funtapのtoken項目に発行されたキーを入力します。

Step 3. 政府審査中かどうかの確認

Service Buildで手動情報更新メニューを表示するかどうかを決めるには、まずユーザーがログインに成功している必要があります。ログイン後にキャラクター情報画面または設定画面を開くとき、ProviderFuntap.isFuntapUnderGovernmentReview()を呼び出して点検の進行有無を確認します。結果がtrueであれば政府規制の点検期間であるため、Hive SDKがログイン直後にWebView形式の本人認証画面を次のように自動表示します。この場合、手動情報更新UIは別途表示しません。

本人認証ポップアップ画面の例

結果がfalseであれば次のStepに進みます。

using hive;

bool result = ProviderFuntap.isFuntapUnderGovernmentReview();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

bool result = ProviderFuntap::isFuntapUnderGovernmentReview();
import com.hive.ProviderFuntap

val result = ProviderFuntap.isFuntapUnderGovernmentReview()
import com.hive.ProviderFuntap;

boolean result = ProviderFuntap.isFuntapUnderGovernmentReview();

Step 4. ユーザー情報入力完了有無の確認

Step 3の結果がfalseであれば、ユーザーが手動で情報更新を進められるかどうかを判断する必要があります。userIdには、ログイン成功後にPlayerInfoレスポンスで受け取ったPlayerIDを文字列として渡します。PlayerInfoレスポンス値の詳細は、始める前にを参照してください。

ProviderFuntap.checkUserInfoComplete(userId)呼び出し結果として渡されるisCompleted値がtrueであれば、すでに情報入力が完了している状態のためUIを表示しません。isCompleted値がfalseであれば、次の段階で情報更新UIを提供します。

using hive;

string userId = "USER_ID";

ProviderFuntap.checkUserInfoComplete(userId, (ResultAPI result, bool isCompleted) => {
    if (result.isSuccess()) {
        // isCompletedがfalseであれば情報更新UIを表示
    }
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

std::string userId = "USER_ID";

ProviderFuntap::checkUserInfoComplete(userId, [=](ResultAPI const & result, bool isCompleted) {
    if (result.isSuccess()) {
        // isCompletedがfalseであれば情報更新UIを表示
    }
});
import com.hive.ProviderFuntap
import com.hive.ResultAPI

val userId = "USER_ID"

ProviderFuntap.checkUserInfoComplete(userId) { result: ResultAPI, isCompleted: Boolean ->
    if (result.isSuccess) {
        // isCompletedがfalseであれば情報更新UIを表示
    }
}
import com.hive.ProviderFuntap;
import com.hive.ResultAPI;

String userId = "USER_ID";

ProviderFuntap.checkUserInfoComplete(userId, (result, isCompleted) -> {
    if (result.isSuccess()) {
        // isCompletedがfalseであれば情報更新UIを表示
    }
});

Step 5. 情報更新UIの表示

Step 4でisCompleted値がfalseであれば、キャラクター情報画面または設定画面に、ユーザーが直接選択できるメニューを提供します。ユーザーがそのメニューを選択すると、ProviderFuntap.showUpdateUserInfo(userId)を呼び出して情報更新画面を開きます。

using hive;

string userId = "USER_ID";

ProviderFuntap.showUpdateUserInfo(userId, (ResultAPI result) => {
    if (result.isSuccess()) {
        // API呼び出し成功
    }
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

std::string userId = "USER_ID";

ProviderFuntap::showUpdateUserInfo(userId, [=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // API呼び出し成功
    }
});
import com.hive.ProviderFuntap
import com.hive.ResultAPI

val userId = "USER_ID"

ProviderFuntap.showUpdateUserInfo(userId) { result: ResultAPI ->
    if (result.isSuccess) {
        // API呼び出し成功
    }
}
import com.hive.ProviderFuntap;
import com.hive.ResultAPI;

String userId = "USER_ID";

ProviderFuntap.showUpdateUserInfo(userId, (result) -> {
    if (result.isSuccess()) {
        // API呼び出し成功
    }
});