Java-Schnellstart für Native und Android Studio
In dieser Schnellstartanleitung können Sie das PlayFab JavaSDK und das einfache Java-Programm verwenden.
Bevor Sie eine PlayFab-API aufrufen können, müssen Sie über ein PlayFab-Entwicklerkonto verfügen.
In diesem Tutorial werden folgende Ziele verfolgt:
Rufen Sie die erforderlichen JAR-Dateien ab.
Fügen Sie dem Klassenpfad JAR-Dateien hinzu.
Erstellen Sie eine minimale Java-Konsolenanwendung, die den API-Aufruf der benutzerdefinierten ID-Anmeldung ausführt.
Abrufen der erforderlichen JAR-Dateien
Um das PlayFab JavaSDK nutzen zu können, benötigen wir den PlayFab-Client JavaSDK und seine Abhängigkeit, die Google GSON.
Laden Sie die JavaSDK-JAR-Bibliothek des PlayFab-Clients hier herunter. Suchen Sie nach client-sdk-*.jar und dem entsprechenden Java-Dokument [Optional, aber nützlich].
Sie können das neueste Google GSON hier herunterladen. Suchen Sie nach gson-*.jar.
Projekteinrichtung mit Intellij Idea
Nachdem Sie ein einfaches Intellij Idea Java-Projekt initialisiert haben, stellen Sie sicher, dass Sie die erforderlichen JAR-Dateien wie im folgenden Beispiel gezeigt platzieren.
Der nächste Schritt ist das Hinzufügen von JAR-Dateien zum Klassenpfad. Navigieren Sie zu Datei ->, wie im folgenden Beispiel gezeigt.
Navigieren Sie zu Bibliotheken, und fügen Sie eine neue Java-Bibliothek hinzu, wie in der folgenden Abbildung dargestellt.
Wählen Sie die JAR-Dateien aus, die Sie dem Ordner libs hinzugefügt haben, und klicken Sie dann wie unten gezeigt auf OK .
Wenn Sie nach dem Modul gefragt werden, wählen Sie das erste Modul in der Liste aus. Stellen Sie sicher, dass alle JAR-Dateien der Bibliotheksliste hinzugefügt wurden.
Projekteinrichtung mit einer beliebigen IDE
Die Standard Anforderung besteht darin, jar-Dateien zum Klassenpfad hinzuzufügen. Informationen zum Hinzufügen von JAR-Dateien zum Klassenpfad finden Sie im Leitfaden für Ihre IDE.
Einrichten Ihres ersten API-Aufrufs
Verwenden Sie den unten gezeigten Code als Standard Klassencode.
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;
}
}
Fertig stellen und ausführen
So führen Sie die Anwendung aus:
- Wählen Sie den Wiedergabepfeil > in der oberen rechten Ecke aus. Dadurch wird die Programmausführung gestartet, und der Ausgabebereich wird angezeigt.
- Suchen Sie die Debugmeldung. Dies gibt an, dass der API-Aufruf erfolgreich war.
An diesem Punkt können Sie damit beginnen, andere API-Aufrufe auszuführen und Ihr Spiel zu erstellen.
Eine Liste aller verfügbaren Client-API-Aufrufe finden Sie in unserer Dokumentation zu PlayFab-API-Referenzen .
Dekonstruieren des Codes
In diesem optionalen letzten Abschnitt wird jede Zeile GettingStarted.java
ausführlich beschrieben.
Einfuhren
- Dies ist der minimale Satz von Importen, die für PlayFab-API-Aufrufe verwendet werden.
public static void
main(String[] args) {
Nur eine einfache Schleife, die einen API-Aufruf startet und wartet, bis er abgeschlossen ist.
PlayFabSettings.TitleId = "xxxx"
;- Jeder PlayFab-Entwickler erstellt einen Titel in Game Manager. Wenn Sie Ihr Spiel veröffentlichen, müssen Sie diese titleId in Ihr Spiel codieren. Dadurch kann der Client wissen, wie auf die richtigen Daten in PlayFab zugegriffen werden kann. Für die meisten Benutzer ist es nur ein obligatorischer Schritt, der PlayFab funktioniert.
PlayFabClientModels.LoginWithCustomIDRequest request = new PlayFabClientModels.LoginWithCustomIDRequest();
Die meisten PlayFab-API-Methoden erfordern Eingabeparameter, und diese Eingabeparameter werden in ein Anforderungsobjekt gepackt.
Jede API-Methode erfordert ein eindeutiges Anforderungsobjekt mit einer Mischung aus optionalen und obligatorischen Parametern.
- Für
LoginWithCustomIDRequest
gibt es einen obligatorischen Parameter von , derCustomId
einen Spieler eindeutig identifiziert, undCreateAccount
, der die Erstellung eines neuen Kontos mit diesem Aufruf ermöglicht.
- Für
Für die Anmeldung sollten die meisten Entwickler eine geeignetere Anmeldemethode verwenden.
- Eine Liste aller Anmeldemethoden und Eingabeparameter finden Sie in der Dokumentation zur PlayFab-Anmeldung. Häufig sind folgende Optionen verfügbar:
LoginWithAndroidDeviceID
LoginWithIOSDeviceID
LoginWithEmailAddress
- Eine Liste aller Anmeldemethoden und Eingabeparameter finden Sie in der Dokumentation zur PlayFab-Anmeldung. Häufig sind folgende Optionen verfügbar:
FutureTask<PlayFabResult<com.playfab.PlayFabClientModels.LoginResult>> loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request)
;- Dadurch wird die asynchrone Anforderung an mithilfe
LoginWithCustomID
des Java FutureTask-Frameworks gestartet.
- Dadurch wird die asynchrone Anforderung an mithilfe
Während (ausführung)
{ if (loginTask.isDone()) { OnLoginComplete(loginTask); } }
- Führen Sie eine triviale Standard-Schleife aus, und warten Sie asynchron, bis loginTask abgeschlossen ist.
- Rufen Sie nach Abschluss des Vorgangs auf
OnLoginComplete
.
OnLoginComplete (loginTask)
result = loginTask.get()
;- Rufen Sie das asynchrone Ergebnis ab (dies führt nicht zu einem Block, da wir bestätigt haben, dass futureTask bereits abgeschlossen ist.
wenn (
result.Result != null
), war der API-Aufruf erfolgreich.Bei erfolgreicher Ausführung enthält das
result.Result
Objekt vieler API-Rückrufe die angeforderten Informationen.LoginResult
enthält einige grundlegende Informationen über den Spieler. Für die meisten Benutzer ist die Anmeldung jedoch nur ein obligatorischer Schritt, bevor andere APIs aufgerufen werden.
Wenn (
result.Error != null
) ist, ist der API-Aufruf fehlgeschlagen.- API-Aufrufe können aus vielen Gründen fehlschlagen, und Sie sollten immer versuchen, Fehler zu behandeln.
- Warum API-Aufrufe fehlschlagen (In der Reihenfolge der Wahrscheinlichkeit)
-
PlayFabSettings.TitleId
ist nicht festgelegt. Wenn Sie vergessen, auf Ihren Titel festzulegenTitleId
, funktioniert nichts. - Anforderungsparameter. Wenn Sie nicht die richtigen oder erforderlichen Informationen für einen bestimmten API-Aufruf angegeben haben, tritt ein Fehler auf. Weitere Informationen finden Sie unter
error.errorMessage
,error.errorDetails
odererror.GenerateErrorReport()
. - Gerätekonnektivitätsproblem. Mobiltelefone verlieren ständig die Konnektivität oder erhalten sie wieder, sodass jeder API-Aufruf jederzeit nach dem Zufallsprinzip fehlschlagen kann und dann sofort danach funktioniert. Wenn Sie in einen Tunnel gehen, können Sie vollständig getrennt werden.
- PlayFab-Serverproblem. Wie bei der gesamten Software kann es Probleme geben. Informationen zu Updates finden Sie in unseren Versionshinweisen .
- Das Internet ist nicht 100% zuverlässig. Manchmal ist die Nachricht beschädigt oder kann den PlayFab-Server nicht erreichen.
-
Wenn Sie Probleme beim Debuggen eines Problems haben und die Informationen in den Fehlerinformationen nicht ausreichen, besuchen Sie uns bitte in unseren Foren.