Cette page se concentre sur la partie XBOX de l’intégration : comment provisionner un compte PlayFab lié à l’XUser connecté, et comment le flux des droits (entitlements) du Microsoft Store s’articule avec l’économie PlayFab. Pour l’ensemble des fonctionnalités de PlayFab (Game Manager, catalogues, CloudScript, matchmaking, Party), consultez la documentation PlayFab.
Comptes utilisateur XBOX et PlayFab
Un compte des services XBOX et un compte PlayFab sont deux identités distinctes :- Compte des services XBOX : visible par le joueur. Appartient au compte Microsoft (MSA) du joueur. Porte le gamertag, le XUID, les amis, les succès et la présence.
- Compte PlayFab : en arrière-plan. Identifié par un Entity ID au sein de votre TitleId PlayFab (une chaîne de 4 à 6 chiffres hexadécimaux attribuée lorsque vous créez un titre dans PlayFab Game Manager). Il ne s’agit pas de votre ID de titre XBOX.
- Le joueur a été ajouté avec
XUserAddAsyncet dispose d’unXUserHandle. - Un compte PlayFab existe pour ce joueur sous votre TitleId PlayFab (provisionné automatiquement lors de la première connexion).
- Les comptes XBOX et PlayFab sont liés, et le titre détient des informations d’identification valides (Entity ID + jeton PlayFab) pour les appels REST/SDK PlayFab authentifiés.
Connecter les joueurs à PlayFab
Deux chemins de connexion sont pris en charge. Choisissez-en un en fonction des services PlayFab que vous utilisez :PlayFab Services SDK
Recommandé pour tous les titres. Fourni sous forme de bibliothèque d’extension de jeu (Gaming Extension Library) (
PlayFab.Services.C) dans le GDK. À utiliser pour l’économie, les classements, CloudScript, le matchmaking et tout titre qui utilise plus que Party.Bibliothèque d'assistance Xbox Live de PlayFab Party
À utiliser uniquement si PlayFab Party est le seul service PlayFab que vous utilisez et que les services XBOX sont votre seul fournisseur d’authentification. Fournie avec le SDK PlayFab Party dans le GDK.
PlayFab Services SDK (recommandé)
Le PlayFab Services SDK est fourni avec le GDK et exposePFAuthenticationLoginWithXUserAsync, qui prend un XUserHandle et connecte le joueur à PlayFab en un seul appel. Définissez createAccount = TRUE pour provisionner automatiquement le compte PlayFab lié lors de la première exécution.
Configuration
- Installez le GDK.
- Ajoutez la bibliothèque d’extension de jeu PlayFab.Services.C à votre projet :
- Ouvrez le projet dans Visual Studio → Project → Properties.
- Sous Configuration Properties → Gaming Desktop → General, ouvrez Gaming Extension Libraries et ajoutez PlayFab.Services.C.
- Connectez le joueur à son compte XBOX avec
XUserAddAsyncet conservez leXUserHandleretourné. - Appelez
PFAuthenticationLoginWithXUserAsync:- Passez le
XUserHandlecomme paramètreuser. - Définissez
createAccount = TRUEpour que PlayFab provisionne automatiquement un compte lié lors de la première connexion.
- Passez le
- Conservez les informations d’identification PlayFab obtenues (Entity ID + jeton PlayFab) pour la session et utilisez-les pour tous les appels PlayFab suivants.
Bibliothèque d’assistance XBOX Live de PlayFab Party
Si PlayFab Party est le seul service PlayFab utilisé par votre titre, vous pouvez vous passer du PlayFab Services SDK et vous connecter par la bibliothèque d’assistance XBOX Live de Party, fournie avec le SDK PlayFab Party dans le GDK. Flux- Connectez le joueur à XBOX avec
XUserAddAsync. - Lors de la première initialisation du chat, récupérez le XUID avec
XUserGetId. - Créez un
PartyXblLocalChatUseren appelantPartyXblManager::CreateLocalChatUseravec le XUID. - Appelez
PartyXblManager::LoginToPlayFabavec cet objet utilisateur.- Sur le GDK (console et PC) et le XDK, la bibliothèque d’assistance récupère en interne le jeton des services XBOX requis, connecte le joueur à PlayFab à l’aide de ses informations d’identification XBOX et crée automatiquement un compte PlayFab lors de la première connexion. Les comptes ainsi créés n’ont ni adresse courriel ni nom d’utilisateur associés.
- Sur les titres non GDK/non XDK (par exemple, PC Win32 sans GDK), vous recevez à la place un
PartyXblTokenAndSignatureRequestedStateChange. Récupérez vous-même le jeton des services XBOX et renvoyez-le parPartyXblManager::CompleteGetTokenAndSignatureRequest.
- En cas de réussite, vous recevez un
PartyXblLoginToPlayFabCompletedStateChangecontenant l’Entity ID et le jeton PlayFab.
Pour les utilisateurs distants, utilisez
PartyXblManager::CreateRemoteChatUser : aucune authentification ni aucun échange de jeton n’est nécessaire pour le flux des utilisateurs distants.XUser est le pont d’identité
Tout ce qui suit (connexion à PlayFab, jetons d’écriture de session MPSD, appels S2S, requêtes de droits) commence par unXUserHandle retourné par XUserAddAsync. Deux API sont importantes pour l’intégration de PlayFab :
Consultez Identité des services XBOX pour le modèle de connexion plus large (MSA, jetons XSTS, portée des bacs à sable).
Titres multiplateformes
PlayFab prend en charge de nombreux fournisseurs d’authentification de plateforme. Lorsque vous publiez le même titre sur iOS, Android, Steam ou PlayStation, n’essayez pas de faire passer chaque joueur par XUser : utilisez le fournisseur d’authentification PlayFab natif de la plateforme :- iOS : Apple ID (
LoginWithApple). - Android : Google Play Games (
LoginWithGoogleAccount). - Steam :
LoginWithSteam. - XBOX / GDK PC :
PFAuthenticationLoginWithXUserAsync(cette page).
Achats dans l’application du Microsoft Store par l’économie PlayFab
Pour les titres GDK qui vendent des éléments dans l’application par le Microsoft Store, PlayFab sert de backend d’économie tandis que le Microsoft Store gère la transaction proprement dite. PlayFab rapproche les achats du Microsoft Store de l’inventaire PlayFab du joueur à l’aide de la méthode des droits : le joueur doit d’abord être connecté à son compte XBOX.Le flux
- Le joueur est connecté à XBOX (
XUserAddAsync) et à PlayFab (PFAuthenticationLoginWithXUserAsync). - Le joueur achète un élément par le Microsoft Store sur l’appareil.
- Votre titre informe PlayFab de l’achat.
- PlayFab appelle
ConsumeMicrosoftStoreEntitlementsavec le jeton XBOX et synchronise l’inventaire PlayFab du joueur, en lui accordant les nouveaux éléments.
Prérequis dans Partner Center
- Être inscrit au XBOX Creators Program ou être un partenaire géré.
- Disposer d’une identité d’éditeur configurée dans Partner Center avec le même GUID d’éditeur que vos informations de partenaire commercial XBOX (
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee). - Disposer de l’approbation du concept pour utiliser les services XBOX.
Le module complémentaire Microsoft Store de PlayFab ne prend pas en charge les consommables gérés par le Store dans Partner Center. Créez uniquement des consommables gérés par le développeur (ou des durables).
Créer des éléments correspondants dans Partner Center et PlayFab
Le Product ID de Partner Center et l’Item ID de PlayFab doivent correspondre exactement pour que la synchronisation des droits fonctionne.- Dans Partner Center → Add-ons → Create a new Consumable (Developer-managed) (ou Durable). Entrez un Product ID unique (par exemple,
MyItem_001). - Dans PlayFab Game Manager → Engage → Economy → New item. Entrez la même chaîne dans Item ID (
MyItem_001). Marquez-le comme Consumable ou Durable pour correspondre à Partner Center, puis enregistrez.
Référence terminologique
Catalogues et boutiques : un seul Item ID au niveau global
PlayFab vous permet de définir plusieurs catalogues par titre et, au sein de chaque catalogue, de regrouper des éléments dans des boutiques (Stores). Pour que la synchronisation des droits du Microsoft Store fonctionne, chaque Product ID doit correspondre à exactement un Item ID dans l’ensemble des versions de catalogue de votre titre PlayFab. Incorrect : même ID réutilisé dans plusieurs catalogues :
Correct : un seul Item ID par SKU, librement réutilisé dans les boutiques :
Les boutiques d’un catalogue peuvent ensuite regrouper librement n’importe quel sous-ensemble de ces éléments uniques :
Voir aussi
- Identité des services XBOX : XUser, MSA, jetons XSTS, portée des bacs à sable.
- Multijoueur XBOX : PlayFab Party comme option de transport multijoueur.
- Game Chat 2 : Game Chat 2 superposé à PlayFab Party.
- Multiplayer Activity : intégration de MPA + PlayFab Party.
- Démarrage rapide du PlayFab Services SDK pour le GDK
- Tarifs de PlayFab
