Classic/VPC環境で利用できます。
Android環境向け GAMEPOT Android SDKの使用方法をご案内します。SDKをインストールして環境を構成することで、ゲームとダッシュボードを連携できます。
システム要件
Android用 GAMEPOT SDKを使用するためのシステム要件は、次の通りです。
- 最低動作環境は Android level 24以降です。旧バージョンへのサポートが必要な場合は、お問い合わせチャネルまでご連絡ください。
SDKのインストールと環境の構成
Android SDKをインストールしてから環境を構成し、GAMEPOTのダッシュボードとゲームを連携してゲーム開発に必要な機能を使用できます。
GAMEPOT SDKでサポートしている言語は次の通りです。
- 韓国語、英語、イタリア語、タイ語、ベトナム語、日本語、中国語(簡体字/繁体字)、インドネシア語、ドイツ語、スペイン語、フランス語
GAMEPOT初期化時に登録した言語で自動表示されます。未対応の言語の場合は英語で表示されます。
SDKのインストール
GAMEPOT Android SDKを導入してプロジェクトを設定する手順は次の通りです。
build.gradleまたはbuild.gradle.ktsファイルに NBase SDKを追加します。- GAMEPOT 3.0 以降では、Gradleの設定で外部ライブラリを簡単に統合できます。
Kotlin Gradleの設定
Kotlin DSLを使用するプロジェクトの場合は、次の設定を追加してください。
- プロジェクトルートの
build.gradle.ktsファイルに次の設定を追加します。
Kotlin:
dependencyResolutionManagement {
repositories {
...
google()
maven(url = "https://repo.nbase.io/repository/nbase-releases")
}
}
- アプリモジュール(
Module: app)のbuild.gradle.ktsファイルに次の設定を追加します。
Kotlin:
dependencies {
...
implementation("io.nbase:nbasesdk:latest.release")
}
Googleログインと Google Play Store決済を併せて使用する場合は、次の例をご参照ください。
Kotlin:
dependencies {
...
implementation("io.nbase:nbasesdk:latest.release")
implementation("io.nbase:nbase-adapter-provider-google:latest.release")
implementation("io.nbase:nbase-adapter-billing-googleplay:latest.release")
}
Java Gradleの設定
Groovy DSLを使用するプロジェクトでは、次の設定を追加してください。
- プロジェクトルートの
build.gradleファイルに次の設定を追加します。
Groovy:
allprojects {
repositories {
...
google()
maven { url "https://repo.nbase.io/repository/nbase-releases" }
}
}
- アプリモジュール(
Module: app)のbuild.gradleファイルに次の設定を追加します。
Groovy:
dependencies {
...
implementation("io.nbase:nbasesdk:latest.release")
}
Googleログインと Google Play Store決済を併せて使用する場合は、次の例をご参照ください。
Groovy:
dependencies {
...
implementation("io.nbase:nbasesdk:latest.release")
implementation("io.nbase:nbase-adapter-provider-google:latest.release")
implementation("io.nbase:nbase-adapter-billing-googleplay:latest.release")
}
対応可能な AOS依存モジュールは次の通りです。
| Name | Description | Dependency modules |
|---|---|---|
| io.nbase:nbasesdk | GAMEPOT基本モジュール | X |
| io.nbase:nbase-adapter-provider-google | Googleログイン | X |
| io.nbase:nbase-adapter-provider-apple | Appleログイン | X |
| io.nbase:nbase-adapter-provider-facebook | Facebookログイン | com.facebook.android:facebook-login:latest.release |
| io.nbase:nbase-adapter-provider-kakao | Kakaoログイン | X |
| io.nbase:nbase-adapter-provider-line | LINEログイン | X |
| io.nbase:nbase-adapter-provider-naver | NAVERログイン | X |
| io.nbase:nbase-adapter-provider-huawei | Huaweiログイン | X |
| io.nbase:nbase-adapter-provider-playgame | Google Play Gamesログイン | X |
| io.nbase:nbase-adapter-provider-x | Xログイン | X |
| io.nbase:nbase-adapter-billing-googleplay | Google Play Store | com.android.billingclient:billing:8.0.0 |
| io.nbase:nbase-adapter-billing-onestore | ONE Store | X |
| io.nbase:nbase-adapter-billing-galaxy | Galaxy Store | X |
| io.nbase:nbase-adapter-billing-huawei | Huawei Store | X |
ゲストログインは基本モジュールに含まれています。
事前準備
SDKを適用する前に、必須設定項目を次のようにご確認ください。
- プロジェクト IDとプロジェクトキーはダッシュボード > プロジェクトの設定からコピーします。
- ログイン、ストア、連携に関する環境設定はダッシュボード > プロジェクトの設定で行います。
- ログイン別にログイン手段別環境設定を参照し、コンソールに設定してダッシュボードに追加します。
- In-App決済を利用する場合、ストア別環境設定を参照して、コンソールで設定し、ダッシュボードに追加します。
- In-App決済用の各ストアのアイテムをダッシュボード > 決済 > In-App で登録します。
リセット
リセットを実行するには、ゲームを始める際にロードされる最初の画面に使用されるインスタンスに、以下のコードを追加します。
Kotlin:
import android.util.Log
import com.nbase.sdk.NBase
import com.nbase.sdk.Store
NBase.initialize(activity, projectId, projectKey, storeId, language, region) { init, e ->
if (e != null) {
Log.e("NBase", e.message ?: "initialize fail")
} else {
Log.i("NBase", "initialize success: ${init.toString()}")
}
}
Java:
import android.util.Log;
import com.nbase.sdk.NBase;
import com.nbase.sdk.Store;
NBase nBase = NBase.INSTANCE;
nBase.initialize(activity, projectId, projectKey, Store.GOOGLE, language, region, (init, e) -> {
if (e != null) {
Log.e("NBase", "initialize fail: " + e.getMessage());
} else {
Log.i("NBase", "initialize success: " + init.toString());
}
return null;
});
- Parameters
次の表は、初期化に必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| projectId | String | プロジェクト ID(ダッシュボード → プロジェクトの設定) | O |
| projectKey | String | プロジェクトキー (ダッシュボード → プロジェクトの設定) | O |
| storeId | String | ストア ID (下記表を参照) | O |
| language | String | 言語コード(en、ko、jpなど) | O |
| region | String | リージョン名(kr、jp、sg、us、eu、preview) | O |
ストア識別子は、次の表をご参照ください。
| Key | Description |
|---|---|
| Store.GOOGLE | Google Play Store |
| Store.ONE | ONE Store |
| Store.GALAXY | Galaxy Store |
| Store.AMAZON | Amazon Store |
| Store.HUAWEI | Huawei Store |
- Callback
次の表は、初期化コールバックに渡される情報を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 状態 |
| language | String | 言語 |
| country | String | 国 |
| remote_ip | String | IP |
| platform | String | プラットフォーム |
| sandbox | Boolean | サンドボックスかどうか |
ログイン機能
ログイン機能を利用し、さまざまな認証方法でユーザーを認証する方法について説明します。
ログイン機能の使用
開発会社が実装したログイン UIから SDKのログイン機能を呼び出すには、次のコードをご参照ください。
Kotlin:
import android.content.Intent
import android.util.Log
import com.nbase.sdk.NBase
import com.nbase.sdk.Provider
NBase.signIn(activity, Provider.GOOGLE.toString()) { user, e ->
if (e != null) {
if (e.errorCode == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.message) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else if (e.errorCode == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.message) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.errorCode + ", " + e.message)
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString())
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
NBase.onActivityResult(requestCode, resultCode, data)
}
Java:
import android.content.Intent;
import android.util.Log;
import com.nbase.sdk.NBase;
import com.nbase.sdk.Provider;
NBase nBase = NBase.INSTANCE;
nBase.signIn(activity, Provider.GOOGLE.toString(), (user, e) -> {
if (e != null) {
if (e.getErrorCode() == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.getMessage()) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else if (e.getErrorCode() == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.getMessage()) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.getErrorCode() + ", " + e.getMessage());
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString());
}
return null;
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
nBase.onActivityResult(requestCode, resultCode, data);
}
アップデートまたはメンテナンス時に SDKが提供する独自のポップアップを使用する場合、以下のコードを追加します。
Kotlin:
NBase.showAppStatusPopup(activity, appStatus){ status, e ->
if (status.close){
// App Close
}
else if (status.next){
// Next, Optional update
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.showAppStatusPopup(activity, appStatus){ status, e ->
if (status.getClose()){
// App Close
}
else if (status.getNext()){
// Next, Optional update
}
}
- Provider
次の表は、ログイン機能で使用するサービスタイプを説明します。
| Key | Description |
|---|---|
| Provider.GOOGLE | |
| Provider.ANONYMOUS | ゲスト |
| Provider.FACEBOOK | |
| Provider.APPLE | Apple |
| Provider.KAKAO | Kakao |
| Provider.GOOGLEPLAY | Google Play Games |
| Provider.STEAM | Steam |
| Provider.X | X |
| Provider.LINE | LINE |
| Provider.NAVER | NAVER |
| Provider.GITHUB | GitHub |
| Provider.MICROSOFT | Microsoft |
| Provider.HUAWEI | Huawei |
- User
次の表は、Userオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| id | string | ユーザーの固有 ID |
| socialId | string | ソーシャル ID |
| name | string | 氏名 (提供してくれる場合) |
| string | メール (提供してくれる場合) | |
| token | string | トークン |
| age | int | 年齢 (提供してくれる場合) |
| profile | string | プロファイル (提供してくれる場合) |
| customField | string | カスタムフィールド |
| isSignUp | bool | 会員登録しているかどうか |
| appStatus | AppStatus | メンテナンス/アップデート状態 |
- AppStatus
次の表は、AppStatusオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| message | string | メッセージ |
| startedAt | long | 開始時間 |
| endedAt | long | 終了時間 |
| currentAppVersion | string | 現在のアプリバージョン |
| updateAppVersion | string | アップデート後のアプリバージョン |
| currentAppVersionCode | string | 現在のアプリバージョンコード |
| updateAppVersionCode | string | アップデート後のアプリバージョンコード |
| isForce | bool | 強制アップデートかどうか |
| url | string | メンテナンス/アップデートが登録された URL |
SDK独自提供のログイン UI
GAMEPOT SDKが提供する完成された形のログイン UIを使用できます。
SDKが提供するログイン UIを呼び出すには、以下のコードを使用します。
Kotlin:
NBase.openSignInUI(activity) { user, e ->
if (e != null) {
if (e.errorCode == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.message) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else if (e.errorCode == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.message) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.errorCode + ", " + e.message)
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString())
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.openSignInUI(activity, (user, e) -> {
if (e != null) {
if (e.getErrorCode() == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.getMessage()) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else if (e.getErrorCode() == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.getMessage()) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.getErrorCode() + ", " + e.getMessage());
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString());
}
return null;
});
自動ログイン(オプション)
初期化の後、最後にログインした認証手段で自動ログインを試行することができます。自動ログインを試行する前に、最終ログイン Providerタイプの確認をお勧めします。
Kotlin:
// 最終ログイン Providerタイプを確認
val lastProviderType = NBase.getLastProviderType()
if (lastProviderType != Provider.NONE) {
// 有効な Providerがある場合にのみ自動ログインを試行
NBase.signInLastLoggedIn(activity) { user, e ->
if (e != null) {
if (e.errorCode == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.message) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else if (e.errorCode == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.message) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus) { status, err ->
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.errorCode + ", " + e.message)
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString())
}
}
} else {
// 最終ログイン情報なし
Log.e("NBase", "No last login provider found")
}
Java:
NBase nBase = NBase.INSTANCE;
// 最終ログイン Providerタイプを確認
Provider lastProviderType = nBase.getLastProviderType();
if (lastProviderType != Provider.NONE) {
// 有効な Providerがある場合にのみ自動ログインを試行
nBase.signInLastLoggedIn(activity, (user, e) -> {
if (e != null) {
if (e.getErrorCode() == 414) { // Maintenance
// Maintenance
Log.e("NBase", "Maintenance: " + e.getMessage()) // Maintenance message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else if (e.getErrorCode() == 413) { // Update
// Update
Log.e("NBase", "Update: " + e.getMessage()) // Update message
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, user?.appStatus, (status, err) -> {
// Popup handling
}
*/
} else {
// signIn Failed
Log.e("NBase", "signIn Failed: " + e.getErrorCode() + ", " + e.getMessage());
}
} else {
// signIn Success
Log.e("NBase", "signIn Success: " + user.toString());
}
return null;
});
} else {
// 最終ログイン情報なし
Log.e("NBase", "No last login provider found");
}
- getLastProviderType()
最終ログインの Providerタイプを返します。
次の表は、getLastProviderType()メソッドの返り値について説明します。
| Return Type | Description |
|---|---|
| Provider | 最終ログインの Providerタイプ |
- signInLastLoggedIn() Parameter
最後にログインした認証方法で自動ログインを試みます。
次の表は、signInLastLoggedIn()メソッドのパラメータについて説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| activity | Activity | 現在のアクティビティ | O |
- Callback
次の表は、自動ログインコールバックに渡される値を説明します。
| Key | Type | Description |
|---|---|---|
| user | User | ログイン成功時のユーザー情報 |
| error | Error | ログイン失敗時のエラー情報 |
ログアウト
GAMEPOTユーザーアカウントからログアウトするには、以下のコードを使用してください。
Kotlin:
NBase.signOut(activity) { status, e ->
if (e != null) {
Log.e("NBase", "signOut Fail")
Log.e("NBase", "error.message : " + e.message.toString())
} else {
Log.e("NBase", "signOut")
Log.e("NBase", "status : " + status.toString())
// ログアウト成功後の処理ロジック
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.signOut(activity, (status, e) -> {
if (e != null) {
Log.e("NBase", "signOut Fail");
Log.e("NBase", "error.message : " + e.getMessage());
} else {
Log.e("NBase", "signOut");
Log.e("NBase", "status : " + status.toString());
// ログアウト成功後の処理ロジック
}
return null;
});
- Parameter
次の表は、getLastProviderType()メソッドのパラメータについて説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| activity | Activity | 現在のアクティビティ | O |
- Callback
次の表は、ログアウトコールバックに渡される値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | ログアウトは成功したか |
退会
SDK退会機能を使用するには、以下のコードを使用します。
Kotlin:
NBase.deleteMember(providerId) { status, e ->
if (e != null) {
Log.e("NBase", "deleteMember Fail")
Log.e("NBase", "error.message : " + e.message.toString())
} else {
Log.e("NBase", "deleteMember")
Log.e("NBase", "status : " + status.toString())
// 退会成功後の処理ロジック
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.deleteMember(providerId, (status, e) -> {
if (e != null) {
Log.e("NBase", "deleteMember Fail");
Log.e("NBase", "error.message : " + e.getMessage());
} else {
Log.e("NBase", "deleteMember");
Log.e("NBase", "status : " + status.toString());
// 退会成功後の処理ロジック
}
return null;
});
- Parameters
次の表は、退会時に渡すべきパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| providerId | Provider | ログインした Providerタイプ(例: Provider.GOOGLE、Provider.ANONYMOUSなど) | O |
- Callback
次の表は、退会コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 退会は成功したか |
独自の IDパスワード認証 (オプション)
ユーザーがメールアドレスとパスワードを使用してログインできるようにする認証メソッドです。ユーザーのメールアドレスとパスワードに基づいてユーザー認証を行います。
Kotlin:
NBase.signInWithPassword(activity, username, password) { user, e ->
if (e != null) {
Log.e("NBase", e.message)
} else {
Log.e("NBase", user)
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.signInWithPassword(activity, username, password, (user, e) -> {
if (e != null) {
Log.e("NBase", "signInWithPassword fail: " + e.getMessage());
} else {
Log.e("NBase", "signInWithPassword success: " + user.toString());
}
return null;
});
認証情報でログイン (オプション)
外部から取得したソーシャルアカウントの認証情報(Access Token)を使用してログインするには、以下のコードを使用します。
Kotlin:
NBase.signInWithCredential(activity, Provider.GOOGLE.ToString(), providerToken) { user, e ->
if (e != null) {
Log.e("NBase", e.message)
} else {
Log.e("NBase", user)
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.signInWithCredential(activity, Provider.GOOGLE.toString(), providerToken, (user, e) -> {
if (e != null) {
Log.e("NBase", "signInWithCredential fail: " + e.getMessage());
} else {
Log.e("NBase", "signInWithCredential success: " + user.toString());
}
return null;
});
- Parameter
次の表は、認証情報ログインに必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| activity | Activity | 現在のアクティビティ | O |
| providerId | Provider | 連携する Providerタイプ | O |
| providerToken | String | ソーシャルアカウントの Access Token | O |
- Callback
次の表は、認証情報ログインコールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| user | User | ログイン成功時のユーザー情報 |
| error | Error | ログイン失敗時のエラー情報 |
外部アカウント連携機能
GAMEPOTユーザーアカウントに外部ソーシャルアカウントを連携して管理する機能を説明します。
外部アカウント連携機能の使用
現在の GAMEPOTユーザーアカウントと別のソーシャルアカウントを連携するには、以下のコードを使用します。
Kotlin:
NBase.createLinking(activity, providerId) { linkingId, e ->
if (e != null) {
Log.e("NBase", "createLinking Fail")
Log.e("NBase", "error.message : " + e.message.toString())
} else {
Log.e("NBase", "createLinking")
Log.e("NBase", "linkingId : " + linkingId.toString())
// アカウント連携成功後の処理ロジック
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.createLinking(activity, providerId, (linkingId, e) -> {
if (e != null) {
Log.e("NBase", "createLinking Fail");
Log.e("NBase", "error.message : " + e.getMessage());
} else {
Log.e("NBase", "createLinking");
Log.e("NBase", "linkingId : " + linkingId);
// アカウント連携成功後の処理ロジック
}
return null;
});
- Parameter
次の表は、アカウント連携に必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| activity | Activity | 現在のアクティビティ | O |
| providerId | Provider | 連携対象の Providerタイプ (例: Provider.GOOGLE、Provider.FACEBOOKなど) | O |
- Callback
次の表は、アカウント連携コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| linkingId | String | 連携成功時に返される連携 ID |
連携リストの確認
現在の GAMEPOTユーザーアカウントと連携されたソーシャルアカウントリストを確認するには、以下のコードを使用します。
Kotlin:
NBase.getLinkedLists { linkings, e ->
if (e != null) {
Log.e("NBase", "getLinkedLists Fail")
Log.e("NBase", "error.message : " + e.message.toString())
} else {
Log.e("NBase", "getLinkedLists")
Log.e("NBase", "linkings : " + linkings.toString())
// 連携リスト確認後の処理ロジック
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.getLinkedLists((linkings, e) -> {
if (e != null) {
Log.e("NBase", "getLinkedLists Fail");
Log.e("NBase", "error.message : " + e.getMessage());
} else {
Log.e("NBase", "getLinkedLists");
Log.e("NBase", "linkings : " + linkings.toString());
// 連携リスト確認後の処理ロジック
}
return null;
});
- Callback
次の表は、アカウント連携リストの確認時に提供される値を説明します。
| Key | Type | Description |
|---|---|---|
| linkings | List |
連携されたアカウントリスト |
- Linking
次の表は、Linkingオブジェクトのフィールドを説明します。
| Key | Type | Description |
|---|---|---|
| id | String | 連携 ID (アカウント連携解除時に使用) |
| username | String | ソーシャル ID |
| provider | String | ソーシャル providerタイプ |
連携解除
現在の GAMEPOTユーザーアカウントから特定のソーシャルアカウント連携を解除するには、以下のコードを使用します。
Kotlin:
NBase.deleteLinking(linkingId) { status, e ->
if (e != null) {
Log.e("NBase", "deleteLinking Fail")
Log.e("NBase", "error.message : " + e.message.toString())
} else {
Log.e("NBase", "deleteLinking")
Log.e("NBase", "status : " + status.toString())
// 連携解除成功後の処理ロジック
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.deleteLinking(linkingId, (status, e) -> {
if (e != null) {
Log.e("NBase", "deleteLinking Fail");
Log.e("NBase", "error.message : " + e.getMessage());
} else {
Log.e("NBase", "deleteLinking");
Log.e("NBase", "status : " + status.toString());
// 連携解除成功後の処理ロジック
}
return null;
});
- Parameter
次の表は、アカウント連携解除に必要なパラメータを説明します。
| Key | Type | Description | Required |
|---|---|---|---|
| linkingId | String | 解除対象の連携 ID (createLinkingまたは getLinkedListsから取得) | O |
- Callback
次の表は、アカウント連携解除コールバックの値を説明します。
| Key | Type | Description |
|---|---|---|
| status | Boolean | 連携解除は成功したか |
アプリ状態の確認
現在のクライアントのメンテナンス/アップデート状態を確認するには、以下のコードをご利用ください。
Kotlin:
NBase.checkAppStatus(activity) { status, error ->
when (status) {
is NBaseAppStatus.Maintenance -> {
// Maintenance
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, status) { popupStatus, e ->
// Popup handling
}
*/
}
is NBaseAppStatus.Update -> {
// Update
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
NBase.showAppStatusPopup(activity, status) { popupStatus, e ->
// Popup handling
}
*/
}
null -> {
// AppStatus Success or Error
if (error != null) {
Log.e("NBase", "checkAppStatus error: $error")
} else {
Log.e("NBase", "checkAppStatus success")
}
}
}
}
Java:
NBase nBase = NBase.INSTANCE;
nBase.checkAppStatus(activity, (status, error) -> {
if (status instanceof NBaseAppStatus.Maintenance) {
// Maintenance
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
nBase.showAppStatusPopup(activity, status, (popupStatus, e) -> {
// Popup handling
});
*/
} else if (status instanceof NBaseAppStatus.Update) {
// Update
/* case 1: Use in-game popup implemented directly by the developer
case 2: Call the code below to use the SDK's own popup
nBase.showAppStatusPopup(activity, status, (popupStatus, e) -> {
// Popup handling
});
*/
} else if (status == null) {
// AppStatus Success or Error
if (error != null) {
Log.e("NBase", "checkAppStatus error: " + error.toString());
} else {
Log.e("NBase", "checkAppStatus success");
}
}
return null;
});
トラブルシューティング
よくあるエラーと解決方法をご案内します。
Q. Androidでandroidx.security.crypto.MasterKeysクラスが見つからないというエラーが発生します。
A. MasterKeysクラスが見つからないために発生したエラーです。次の依存関係をbuild.gradleまたはbuild.gradle.ktsファイルに追加してください。
Groovy:
implementation("androidx.security:security-crypto:1.0.0")
Q. Googleでログインすると10: Developer console is not set up correctly.エラーが発生します。
A. Google Cloudコンソールに登録されているウェブアプリケーションの OAuth 2.0 Client IDおよび Client Secretが、GAMEPOTダッシュボードに正しく入力されているかご確認ください。
Q. Googleでログインすると16: Cannot find a matching credential.エラーが発生します。
A. Google Cloudコンソールに登録されている OAuth 2.0 Androidクライアントのパッケージ名と、アプリの SHA-1値が一致しているかご確認ください。