メインコンテンツまでスキップ

Modular Extend SDK を始める

Last updated on April 7, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

この記事では、複数のサポートされているプログラミング言語で Modular Extend SDK(モノリシック Extend SDK の後継)を使用してプロジェクトを作成する基本について説明します。

Modular Extend SDK を使用すると、プロジェクトが実際に必要とする AGS サービスパッケージのみを含めることができ、不要な依存関係を減らせます。モノリシック SDK からの段階的な移行のための互換性レイヤーも利用できます。

目標

このガイドでは以下を行います。

  • アプリケーションプロジェクトを作成する。
  • Modular Extend SDK パッケージをプロジェクト依存関係として追加する。
  • Modular Extend SDK を使用して AGS エンドポイントを呼び出す。
  • アプリケーションを実行する。

前提条件

このガイドを開始するには、以下が必要です。

  • AccelByte Gaming Services (AGS) へのアクセス(デモ環境):
    • AB_BASE_URL 環境変数には <your environment's domain URL> を使用します。
      • AGS Shared Cloud のお客様の例: https://spaceshooter.prod.gamingservices.accelbyte.io
      • AGS Private Cloud のお客様の例: https://dev.customer.accelbyte.io
    • クライアントタイプ Confidential の OAuth クライアントを作成します。
      • AB_CLIENT_ID 環境変数には Client ID の値を使用します。
      • AB_CLIENT_SECRET 環境変数には Client Secret の値を使用します。
  • AccelByte Python Modular Extend SDK
  • 以下のツールへのアクセス:
    • Git
    • Python 3.9 以降
    • Python IDE

プロジェクトを作成する

dotnet CLI を使用して、新しいソリューションとその中にコンソールプロジェクトを作成します。

$ mkdir -p /path/to/mysolution
$ cd /path/to/mysolution
$ dotnet new sln --name mysolution # 新しいソリューションを作成: mysolution
$ dotnet new console -o myproject # 新しいコンソールプロジェクトを作成: myproject
$ dotnet sln add myproject/myproject.csproj # myproject を mysolution に追加

プロジェクト依存関係に追加する

Modular Python Extend SDK は個別の pip パッケージとして配布されています。コアパッケージをインストールし、プロジェクトが必要とする AGS サービスパッケージのみを追加します。

# 常に必要
$ pip install accelbyte-py-sdk-core

# AGS サービスパッケージ — 必要なものだけをインストール
$ pip install accelbyte-py-sdk-service-iam
$ pip install accelbyte-py-sdk-service-basic
# pip install accelbyte-py-sdk-service-<name> # 必要に応じて追加

# オプションの機能パッケージ
$ pip install accelbyte-py-sdk-feat-auth
$ pip install accelbyte-py-sdk-feat-token-validation

# またはすべてを一度にインストール
# $ pip install accelbyte-py-sdk-all
ヒント

AGS バージョンに対応する Modular Python Extend SDK バージョンの使用をお勧めします。

コードで使用する

  1. Program.cs で SDK インスタンスを作成し、クライアント認証情報を使用してログインし、AGS API を呼び出します。
  2. DefaultConfigRepository は環境変数から AB_BASE_URLAB_CLIENT_IDAB_CLIENT_SECRET を読み込みます。
// Program.cs

using AccelByte.Sdk.Core;
using AccelByte.Sdk.Core.Net.Http;
using AccelByte.Sdk.Core.Repository;
using AccelByte.Sdk.Api;
using AccelByte.Sdk.Api.Basic.Model;

// SDK インスタンスを構築
IAccelByteSdk sdk = AccelByteSdk.Builder
.UseDefaultHttpClient()
.UseDefaultConfigRepository() // 環境変数から AB_BASE_URL、AB_CLIENT_ID、AB_CLIENT_SECRET を読み込み
.UseDefaultTokenRepository()
.Build();

// クライアント認証情報を使用してログイン
bool login = sdk.LoginClient();
if (!login)
{
Console.WriteLine("Login failed");
return 1;
}

// AGS エンドポイントを呼び出す — 例: Basic サービスの getMyProfileInfo
var response = sdk.GetBasicApi().UserProfile.GetMyProfileInfoOp.Execute(sdk.Namespace);
if (response.IsSuccess && response.Data != null)
{
UserProfilePrivateInfo profileData = response.Data;
Console.WriteLine($"User ID: {profileData.UserId}");
}
else
{
Console.WriteLine($"Error: {response.Error?.Message}");
return 2;
}

// ログアウト
bool logout = sdk.Logout();
if (!logout)
{
Console.WriteLine("Logout failed");
return 1;
}

return 0;

コードを実行する

必要な環境変数を設定し、Python インタープリターを使用してコードを実行します。

$ export AB_BASE_URL="<your environment's domain URL>"          # AGS ベース URL
$ export AB_CLIENT_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # AGS OAuth クライアント ID
$ export AB_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # AGS OAuth クライアントシークレット
$ export AB_NAMESPACE="<your namespace>" # AGS Namespace
$ python app.py

モノリシック SDK から移行する

このセクションでは、モノリシック Extend SDK を使用している既存のプロジェクトを Modular Extend SDK に移行する方法について説明します。

ヒント

Modular Extend SDK は 互換性レイヤー を提供しており、段階的な移行が可能です。既存のコードは、サービスごとに更新しながらも引き続きコンパイルできます。

ステップ 1: 廃止済みコンポーネントを削除する

移行前に、最新のモノリシック SDK バージョンにアップグレードし、非推奨または廃止済みのクラス、メソッド、プロパティの使用を削除します。Modular SDK にはこれらは含まれていません。

ステップ 2: プロジェクト依存関係を置き換える

モノリシック SDK のプロジェクト参照を削除し、代わりに Modular SDK の NuGet パッケージをインストールします。

# コアパッケージ(常に必要)
$ dotnet add package AccelByte.Sdk.Abstractions
$ dotnet add package AccelByte.Sdk.Core
$ dotnet add package AccelByte.Sdk.Authentication

# 使用している AGS サービスパッケージのみを追加
$ dotnet add package AccelByte.Sdk.Api.Iam
$ dotnet add package AccelByte.Sdk.Api.Basic
# dotnet add package AccelByte.Sdk.Api.<ApiName>

# 既存のコードをコンパイルし続けるための互換性レイヤーを追加
$ dotnet add package AccelByte.Sdk.Api.Compat

ステップ 3: 名前空間とクラス名の変更を修正する

モノリシック SDK とモジュラー SDK の主な変更点を以下に示します。

SDK クラスとビルダー:

モノリシックモジュラー
SDK クラスAccelByteSDKAccelByteSdkIAccelByteSdk を実装)
SDK ビルダーAccelByteSdkBuilderAccelByteSdkBuilder<T>IAccelByteSdkBuilder<T> を実装)

名前空間:

コンポーネントモノリシックモジュラー
HTTP クライアントAccelByte.Sdk.Core.ClientAccelByte.Sdk.Core.Net.Http
HTTP ロガーAccelByte.Sdk.Core.LoggingAccelByte.Sdk.Core.Net.Logging
ユーティリティAccelByte.Sdk.Core.Util削除 — AccelByte.Sdk.Core の拡張メソッドに移動
セキュリティ(クラスファイル内)AccelByte.Sdk.Core.Security

フルエント API アクセス:

// モノリシック
sdk.Legal.Agreement.RetrieveAgreementsPublicOp.Execute();

// モジュラー
sdk.GetLegalApi().Agreement.RetrieveAgreementsPublicOp.Execute();

SDK の初期化 — 各デフォルト実装に独自の名前空間が必要になりました:

// モノリシック — 1 つの名前空間ですべてをカバー
using AccelByte.Sdk.Core;

// モジュラー — コンポーネントごとに名前空間を含める
using AccelByte.Sdk.Core;
using AccelByte.Sdk.Core.Repository; // デフォルトリポジトリ用
using AccelByte.Sdk.Core.Net.Http; // HTTP クライアント用

ステップ 4: 呼び出しレスポンスの処理を更新する

すべての操作呼び出しは、データを直接返す代わりにレスポンスオブジェクトを返すようになりました。EnsureSuccess() を使用すると、以前の動作と同等のショートハンドとして利用できます。

// モノリシック
List<RetrieveAcceptedAgreementResponse>? response = sdk.GetLegalApi().Agreement
.RetrieveAgreementsPublicOp.Execute();

// モジュラー — レスポンスオブジェクトパターン
var response = sdk.GetLegalApi().Agreement.RetrieveAgreementsPublicOp.Execute();
if (response.IsSuccess)
{
List<RetrieveAcceptedAgreementResponse> data = response.Data;
}

// モジュラー — モノリシックと同等のショートハンド(失敗時に ApiResponseException をスロー)
List<RetrieveAcceptedAgreementResponse> data = sdk.GetLegalApi().Agreement
.RetrieveAgreementsPublicOp.Execute().EnsureSuccess();

注意: 例外の型が HttpResponseException から ApiResponseException に変更されました。

ステップ 5: 互換性レイヤーを使用する(オプション)

段階的に移行しながらモジュラー SDK をモノリシック SDK と同様に動作させたい場合、AccelByte.Sdk.Api.Compat パッケージは以下のアダプタークラスを提供します。

  • 元の AccelByteSDK クラス名とフルエントインターフェース(sdk.Legalsdk.Basic など)を公開。
  • 既存のエラーハンドリングを維持するために HttpResponseException を再スロー(ApiResponseException から変換)。
  • AccelByte.Sdk.Core.UtilHelper クラスを拡張メソッドにマッピング。

compat パッケージを追加すると、既存のコードは変更なしにコンパイルできるようになります。その後、サービスごとに移行を進め、compat の依存関係を順次削除できます。

注記

互換性ライブラリはオンデマンドトークンリフレッシュのデフォルト動作を変更しません。

追加リソース