ネイティブおよび Android Studio の Java クイックスタート
このクイックスタートは、PlayFab JavaSDK と簡単な Java プログラムを使い始めるのに役立ちます。
PlayFab API を呼び出すには、PlayFab 開発者アカウントが必要です。
このチュートリアルの目標は次のとおりです。
必要な JAR ファイルを取得する。
JAR ファイルをクラスパスに追加する。
カスタム ID ログイン API の呼び出しを実行する最小限の Java コンソール アプリケーションを作成する。
必要な JAR ファイルを取得する
PlayFab JavaSDK を利用するためには、PlayFab クライアント JavaSDK とその依存関係である Google GSON が必要です。
PlayFab クライアント JavaSDK JAR ライブラリをここからダウンロードします。 client-sdk-*.jar と対応する Java ドキュメントを探します (省略可能ですが役立ちます)。
最新の Google GSON はこちらでダウンロードできます。 gson-*.jar を探します。
Intellij Idea によるプロジェクトのセットアップ
シンプルな Intellij Idea Java プロジェクトを初期化したら、次の例に示すように、必要な JAR ファイルを配置してください。
次の手順では、クラスパスに JAR ファイルを追加します。 次の例に示すように、ファイル -> に移動します。
下の画像に示すように、[ライブラリ] に移動し、新しい Java ライブラリを追加します。
Libs フォルダーに追加した JAR ファイルを選択し、次のように [OK] をクリックします。
モジュール が求められた場合、一覧で最初のモジュールを選択します。 すべての JAR ファイルがライブラリ リストに追加されていることを確認します。
IDE を使ったプロジェクトのセットアップ
主な要件は、クラスパスに JAR ファイルを追加することです。 JAR ファイルをクラスパスに追加する方法については、IDE のガイドを参照してください。
最初の API 呼び出しのセットアップ
メインクラスコードとして次のコードを使用します。
import java.util.concurrent.*;
import java.util.*;
import com.playfab.PlayFabErrors.*;
import com.playfab.PlayFabSettings;
import com.playfab.PlayFabClientModels;
import com.playfab.PlayFabClientAPI;
public class Main
{
private static boolean _running = true;
public static void main(String[] args) {
PlayFabSettings.TitleId = "144";
PlayFabClientModels.LoginWithCustomIDRequest request = new PlayFabClientModels.LoginWithCustomIDRequest();
request.CustomId = "GettingStartedGuide";
request.CreateAccount = true;
FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request);
loginTask.run();
while (_running) {
if (loginTask.isDone()) { // You would probably want a more sophisticated way of tracking pending async API calls in a real game
OnLoginComplete(loginTask);
}
// Presumably this would be your main game loop, doing other things
try {
Thread.sleep(1);
} catch(Exception e) {
System.out.println("Critical error in the example main loop: " + e);
}
}
}
private static void OnLoginComplete(FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask) {
PlayFabResult<com.playfab.PlayFabClientModels.LoginResult> result = null;
try {
result = loginTask.get(); // Wait for the result from the async call
} catch(Exception e) {
System.out.println("Exception in PlayFab api call: " + e); // Did you assign your PlayFabSettings.TitleId correctly?
}
if (result != null && result.Result != null) {
System.out.println("Congratulations, you made your first successful API call!");
} else if (result != null && result.Error != null) {
System.out.println("Something went wrong with your first API call.");
System.out.println("Here's some debug information:");
System.out.println(CompileErrorsFromResult(result));
}
_running = false; // Because this is just an example, successful login triggers the end of the program
}
// This is a utility function we haven't put into the core SDK yet. Feel free to use it.
private static <RT> String CompileErrorsFromResult(PlayFabResult<RT> result) {
if (result == null || result.Error == null)
return null;
String errorMessage = "";
if (result.Error.errorMessage != null)
errorMessage += result.Error.errorMessage;
if (result.Error.errorDetails != null)
for (Map.Entry<String, List<String>> pair : result.Error.errorDetails.entrySet() )
for (String msg : pair.getValue())
errorMessage += "\n" + pair.getKey() + ": " + msg;
return errorMessage;
}
}
完成と実行
以下の方法でアプリケーションを実行します。
- 右上隅の再生矢印 > を選択します。 これにより、プログラムの実行が開始され、出力パネルが表示されます。
- デバッグ メッセージ を見つけます。 これは、API 呼び出しが成功したことを示します。
この時点で、他の API 呼び出しとゲームのビルドを開始できます。
利用可能なすべてのクライアント API 呼び出しの一覧については、PlayFab API リファレンス ドキュメントをご覧ください。
コードを分解する
省略可能なこの最後のセクションでは、GettingStarted.java
のすべての行について詳しく説明します。
インポート
- これは、PlayFab API 呼び出しを行うために使用されるインポートの最小セットです。
public static void
main(String[] args) {
API 呼び出しを開始する基本的なループにすぎず、完了するまで待機します。
PlayFabSettings.TitleId = "xxxx"
;- すべての PlayFab 開発者は、ゲーム マネージャーでタイトルを作成します。 ゲームを公開するとき、ゲームにそのタイトル ID をコードで記述する必要があります。 これにより、クライアントは PlayFab 内で適切なデータにアクセスする方法を知ることができます。 ほとんどのユーザーにとって、これは PlayFab が機能するための必須の手順です。
PlayFabClientModels.LoginWithCustomIDRequest request = new PlayFabClientModels.LoginWithCustomIDRequest();
ほとんどの PlayFab API メソッドには入力パラメーターが必要であり、それらの入力パラメーターは要求オブジェクトにパックされています。
すべての API のメソッドには一意の要求オブジェクトが必要であり、オプション パラメーターおよび必須パラメーターが混在しています。
-
LoginWithCustomIDRequest
の場合、プレイヤーを一意に識別するCustomId
と、この呼び出しで新しいアカウントを作成できるようにするCreateAccount
の必須パラメーターがあります。
-
ログイン時、ほとんどの開発者は適切なログイン方法を使うことを希望します。
- すべてのログイン方法と入力パラメーターの一覧については、PlayFab ログイン ドキュメントをご覧ください。 一般的な選択肢は次のとおりです。
LoginWithAndroidDeviceID
LoginWithIOSDeviceID
LoginWithEmailAddress
- すべてのログイン方法と入力パラメーターの一覧については、PlayFab ログイン ドキュメントをご覧ください。 一般的な選択肢は次のとおりです。
FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request)
;- これにより、Java FutureTask フレームワークを使って
LoginWithCustomID
への非同期要求が開始されます。
- これにより、Java FutureTask フレームワークを使って
{ if (loginTask.isDone()) { OnLoginComplete(loginTask); } }
実行中- 簡単なメイン ループを実行し、loginTask が完了するまで非同期に待機します。
-
OnLoginComplete
の呼び出しが完了した場合。
OnLoginComplete (loginTask)
result = loginTask.get()
;- 非同期の結果を取得します (これによりブロックは発生しません。FutureTask が既に完了していることを確認済みであるためです。
(
result.Result != null
) の場合、API 呼び出しは成功しました。成功すると、多くの API コールバックの
result.Result
オブジェクトに要求された情報が含められます。LoginResult
具体的には、プレーヤーに関するいくつかの基本的な情報が含まれています。 ただし、ほとんどのユーザーにとって、ログインは他の API を呼び出す前の必須の手順です。
(
result.Error != null
) の場合、API 呼び出しは失敗しました。- API 呼び出しは多くの理由で失敗するため、必ずエラーの処理を試みる必要があります。
- API 呼び出しが失敗する理由 (可能性が高い順)
-
PlayFabSettings.TitleId
は設定されていません。 タイトルにTitleId
を設定しなかった場合、何も機能しません。 - 要求パラメーター。 特定の API 呼び出しの正しい情報や必要な情報が指定されていない場合は失敗します。 詳しくは、
error.errorMessage
、error.errorDetails
、またはerror.GenerateErrorReport()
をご覧ください。 - デバイス接続の問題。 携帯電話の接続が絶えず失われて再取得されるため、API 呼び出しが常にランダムに失敗し、その後すぐに機能する可能性があります。 トンネルに入ると完全に切断される可能性があります。
- PlayFab サーバーの問題。 すべてのソフトウェアと同様、問題が生じる可能性があります。 最新情報については、リリース ノートをご覧ください。
- インターネットの信頼性は 100% ではありません。 メッセージが破損したり、PlayFab サーバーに到達できないことがあります。
-
問題のデバッグで問題が発生し、エラー情報内の情報が不十分な場合、フォーラムをご覧ください。