So richten Sie das plattformübergreifende Inventar ein
So funktioniert's
Das plattformübergreifende Inventar ermöglicht es Spieleentwicklern, ein Benutzerinventar innerhalb eines Spiels auf verschiedenen Plattformen (Steam, EGS, PlayStation, XBox usw.) zu synchronisieren, das Benutzerinventar und -guthaben zu verwalten sowie Daten darüber zu sammeln.
Die folgenden Schritt gewährleisten die Synchronisierung:
- Der Spieler verknüpft seine Plattformkonten mit dem Hauptkonto, welches der Identifizierung des Spielers auf den verschiedenen Plattformen dient.
- Xsolla stellt den Mechanismus für das Verknüpfen von Plattformkonten mit dem Hauptkonto und das Verwalten der plattformübergreifenden Inventarsynchronisierung bereit.
Die Lösung umfasst folgende Komponenten:
- Spiel-Client
- Spielserver
- Web-Anwendung samt Benutzeroberfläche für die Kontoverknüpfung
- Xsolla Login zum Bereitstellen des Hauptkontos und eines Verknüpfungsmechanismus
- Xsolla-Spielerinventar zum Speichern des Benutzerinventars
Ablauf für den Nutzer
Sie müssen die Benutzeridentifikation im Spiel implementieren, um ein Plattformkonto (Steam oder EGS) mit dem Hauptkonto zu verknüpfen. Nutzen Sie dazu das Xsolla Login-Konto oder den Algorithmus der Spielkonsolenplattformen für das Verknüpfen von Konten.
Der Algorithmus für das Verknüpfen des Spielekonsolenkontos mit dem Hauptkonto gestaltet sich wie folgt:
- Der Spieler startet das Spiel zum ersten Mal auf der Spielkonsolenplattform.
- Das Spiel zeigt eine Nachricht an, in der angeboten wird, das Plattformkonto mit dem Hauptkonto zu verknüpfen.
- Bei Zustimmung des Spielers:
- erfolgt die Weiterleitung zur Anwendung (z. B. Spiel-Website oder App). Dort kann sich der Spieler authentifizieren oder das Hauptkonto erstellen.
- Nach erfolgreicher Authentifizierung in der Anwendung erhält der Spieler einen alphanumerischen Code zum Verknüpfen der Konten.
- Der Spieler kehrt zur Konsolenversion des Spiels zurück und gibt den Code ein.
- Das Hauptkonto wird mit dem Plattformkonto verknüpft und die Spielkonsole zeigt eine Nachricht als Bestätigung an.
- Das Spielerinventar auf der Plattform wird mit dem Inventar, welches mit dem Hauptkonto verknüpft ist, synchronisiert.
Für wen ist es
Spieleentwickler, die ihr Spiel auf mehreren Plattform veröffentlichen wollen und eine treue Gamer-Community aufbauen möchten, indem sie den Spielern auf jeder Plattform Zugang zu ihren Käufen und Belohnungen gewähren.
Wie komme ich dazu
So verknüpfen Sie ein plattformübergreifendes Inventar:
- Verknüpfen Sie Spielerinventar. Implementieren Sie die Basisauthentifizierung für die Zusammenarbeit mit den Servermethoden und die auf dem OAuth 2.0-Protokoll basierende Xsolla Login-Authentifizierung für die Zusammenarbeit mit den Client-Methoden. Die auf dem OAuth 2.0-Protokoll basierende Authentifizierung ist außerdem für den Zugriff auf die Login API-Methoden und die Implementierung der Methoden zur Kontoverknüpfung erforderlich.
- Implementieren Sie die Benutzeroberfläche für die Kontoverknüpfung, inklusive folgendem:
- Spielserverbasierte Authentifizierung und Inventarverwaltung
- Spiel-Client-basierte Authentifizierung und Inventarverwaltung
- Methoden zur Kontoverknüpfung
Benutzeroberfläche für die Kontoverknüpfung
Die Benutzeroberfläche für die Kontoverknüpfung sollte folgendes bieten:
- Möglichkeit, eine Nachricht anzuzeigen, in der angeboten wird, ein Plattformkonto mit dem Hauptkonto zu verknüpfen
- Möglichkeit, die Verknüpfung der Konten zu akzeptieren oder abzulehnen
- Möglichkeit, den Code für die Verknüpfung der Konten zu senden, wenn der Benutzer der Verknüpfung zustimmt
- Möglichkeit, die URL in der zum Verknüpfen der Konten genutzten Mobilgeräte-App oder Web-Anwendung anzuzeigen
Der Mechanismus zur Authentifizierung von Benutzern im Hauptkonto ist folgender:
- Integrieren Sie das Login-Widget in die App.
- Wenn sich der Benutzer über das Widget authentifiziert, wird ein JWT an die App übermittelt. Implementieren Sie die Möglichkeit, einen JWT aus der App an die Methode zum Abrufen des Verknüpfungscode zu übermitteln und den Code in der App-Benutzeroberfläche anzuzeigen.
- Implementieren Sie die Authentifizierung über JWT aufseiten des Spielservers.
- Implementieren Sie die Übermittlung eines Tokens,
user_id
auf der Konsolenplattform sowie die Übermittlung der Plattform-ID an die Methode zur Verknüpfung mit dem Hauptkonto, wenn der Benutzer die Konsolenversion des Spiels eingibt und den Code zum Verknüpfen der Konten sendet.
Authentifizierung auf dem Spielserver
Um auf die Login API-Methoden für das Verwalten des Spielerinventars auf dem Spielserver zugreifen zu können, müssen Sie die OAuth 2.0-Authentifizierung einrichten und einen Serverzugriffstoken abrufen.
client_id
und den client_secret
bei Ihrem Customer Success Manager oder senden Sie eine E-Mail an csm@xsolla.com.Anfrage:
- php
<?php
$uri = 'https://login.xsolla.com/api/oauth2/token';
$body = [
'grant_type' => 'client_credentials',
'client_id' => 1,
'client_secret' => 'client_secret'
];
$headers = [
'Content-type: application/x-www-form-urlencoded'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, http_build_query($body));
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
print_r($response);
Antwort:
- php
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type":"bearer",
"expires_in":3600,
"scope": ""
}
Verwaltung des Spielerinventars auf dem Spielserver
Zu den Methoden für die Inventarverwaltung zählen folgende Servermethoden:
Eine Übermittlung der user_id
des Benutzers auf der Plattform und eine Übermittlung der Plattform-ID an diese Methoden ist zwingend erforderlich.
Authentifizierung auf dem Spiel-Client
Implementieren Sie die API-Methode Auth by custom ID, um das Spielerinventar im Spiel-Client zu verwalten. Übermitteln Sie die folgenden Parameter in der Anfrage:
server_custom_id
— individuelle Benutzerkennung im Spielsocial_profile.user_id
— individuelle Benutzerkennung auf der Plattform
Anfrage:
- php
<?php
$uri = 'https://login.xsolla.com/api/users/login/server_custom_id';
$queryParams = [
'publisher_project_id' => 44056
];
$queryParamsString = '?' . http_build_query($queryParams);
$body = '
{
"server_custom_id": "1234567890asdfghjkl",
"social_profile": {
"platform": "xbox_live",
"user_id": "4352354"
}
}
';
$headers = [
'Content-type: application/json',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri . $queryParamsString);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Antwort:
- php
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Verwaltung des Spielerinventars im Spiel-Client
Zu den Methoden für die Inventarverwaltung zählen folgende Client-Methoden:
- Inventar des aktuellen Benutzers abrufen
- Virtuelles Guthaben des aktuellen Benutzers abrufen
- Artikel verbrauchen
So verwalten Sie das Spielerinventar auf Konsolenplattformen:
- Implementieren Sie die Übermittlung der Plattform-ID an die Client-Methoden, um Premiumwährungsguthaben auf den Konsolen-Publishing-Plattformen gemäß den Bestimmungen der Konsolenplattformen zu speichern.
- Implementieren Sie folgende Schritte auf dem Spielserver, um das Inventar des Benutzers im Konsolen-Client zu verwalten:
- Das Spiel empfängt einen Serverzugriffstoken für die Benutzertokenisierung.
- Das Spiel empfängt JWT durch die
user_id
des Benutzers auf der Plattform sowie die Plattform-ID. - Das Spiel übermittelt JWT an die angegebenen Client-Methoden.
Methoden zur Kontoverknüpfung
Verknüpfungscode abrufen
Implementieren Sie die API-Methode Create code for linking accounts, um den Verknüpfungscode abzurufen und an den Benutzer zu übermitteln.
Anfrage:
- js
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://login.xsolla.com/api/users/account/code");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
Antwort:
- js
{
"code": "123456"
}
Verknüpfung mit dem Hauptkonto
Implementieren Sie die API-Methode Link accounts by code. Dabei gelten folgende Entsprechungen:
code
– Verknüpfungscodepublisher_project_id
– Projekt-ID aus dem Kundenportaluser_id
– Benutzerkennung auf der Plattform
Sie müssen vor dem Aufrufen der Methode die folgenden Schritte abschließen:
- Implementieren Sie die Benutzeroberfläche für die Anzeige des Kontoverknüpfungscodes und des Formulars zur Eingabe des erhaltenen Codes.
- Implementieren Sie die Methode zum Abrufen eines Serverzugriffstokens.
- Implementieren Sie die Methode zum Abrufen des Verknüpfungscodes.
Anfrage:
- php
<?php
$uri = 'https://login.xsolla.com/api/users/account/link';
$body = '
{
"code": "234155",
"platform": "xbox_live",
"publisher_project_id": "12423354",
"user_id": "4352354"
}
';
$headers = [
'Content-type: application/x-www-form-urlencoded',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Antwort:
- php
204 OK
Plattformliste
Plattform | Plattform-ID | Anmerkung |
---|---|---|
PlayStation Network | playstation_network | - |
XBox Live | xbox_live | - |
PC, Standalone | pc_standalone | - |
Nintendo eShop | nintendo_shop | - |
Google Play | google_play | - |
Apple Store | app_store_ios | - |
Android, Standalone | android_standalone | Das Spiel wird außerhalb der Online-Shops separat veröffentlicht. |
iOS, Standalone | ios_standalone | Das Spiel wird außerhalb der Online-Shops separat veröffentlicht. |
Android, sonstige | android_other | Das Spiel wird in einem alternativen Online-Shop auf PlayMarket veröffentlicht. |
iOS, sonstige | ios_other | Das Spiel wird in einem alternativen Online-Shop im AppStore veröffentlicht. |
PC, sonstige | pc_other | - |
Xsolla | xsolla | - |
War dieser Artikel hilfreich?
Diese Seite bewerten
Jetzt nicht
Vielen Dank für Ihr Feedback!
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.