Esta página se concentra no lado XBOX da integração: como provisionar uma conta do PlayFab vinculada ao XUser conectado e como o fluxo de direitos da Microsoft Store se conecta à economia do PlayFab. Para conhecer todos os recursos do PlayFab (Game Manager, catálogos, cloud script, matchmaking, Party), veja a documentação do PlayFab.
Contas de usuário do XBOX e do PlayFab
Uma conta dos serviços XBOX e uma conta do PlayFab são duas identidades separadas:- Conta dos serviços XBOX: voltada ao jogador. Pertence à conta Microsoft (MSA) do jogador. Contém gamertag, XUID, amigos, conquistas e presença.
- Conta do PlayFab: nos bastidores. Identificada por uma Entity ID dentro do seu PlayFab TitleId (uma string de 4 a 6 dígitos hexadecimais atribuída quando você cria um título no PlayFab Game Manager). Não é a mesma coisa que a ID do título XBOX.
- O jogador foi adicionado com
XUserAddAsynce possui umXUserHandle. - Existe uma conta do PlayFab para esse jogador no seu PlayFab TitleId (provisionada automaticamente na primeira entrada).
- As contas do XBOX e do PlayFab estão vinculadas, e o título possui credenciais válidas (Entity ID + token do PlayFab) para chamadas autenticadas de REST/SDK do PlayFab.
Conectar jogadores ao PlayFab
Há dois caminhos de entrada com suporte. Escolha um com base nos serviços do PlayFab que você usa:PlayFab Services SDK
Recomendado para todos os títulos. É fornecido como uma Gaming Extension Library (
PlayFab.Services.C) no GDK. Use para economia, leaderboards, cloud script, matchmaking e qualquer título que use mais do que apenas o Party.PlayFab Party Xbox Live Helper Library
Use somente se o PlayFab Party for o único serviço do PlayFab que você usa e os serviços XBOX forem seu único provedor de autenticação. É fornecida com o SDK do PlayFab Party dentro do GDK.
PlayFab Services SDK (recomendado)
O PlayFab Services SDK é fornecido com o GDK e expõePFAuthenticationLoginWithXUserAsync, que recebe um XUserHandle e conecta o jogador ao PlayFab em uma única chamada. Defina createAccount = TRUE para provisionar automaticamente a conta do PlayFab vinculada na primeira execução.
Configuração
- Instale o GDK.
- Adicione a Gaming Extension Library PlayFab.Services.C ao seu projeto:
- Abra o projeto no Visual Studio → Project → Properties.
- Em Configuration Properties → Gaming Desktop → General, abra Gaming Extension Libraries e adicione PlayFab.Services.C.
- Conecte o jogador à conta XBOX com
XUserAddAsynce guarde oXUserHandleretornado. - Chame
PFAuthenticationLoginWithXUserAsync:- Passe o
XUserHandlecomo o parâmetrouser. - Defina
createAccount = TRUEpara que o PlayFab provisione automaticamente uma conta vinculada na primeira entrada.
- Passe o
- Mantenha as credenciais do PlayFab resultantes (Entity ID + token do PlayFab) durante a sessão e use-as em todas as chamadas subsequentes do PlayFab.
PlayFab Party XBOX Live Helper Library
Se o PlayFab Party for o único serviço do PlayFab que seu título usa, você poderá dispensar o PlayFab Services SDK e entrar por meio da Party XBOX Live Helper Library, que vem incluída com o SDK do PlayFab Party no GDK. Fluxo- Conecte o jogador ao XBOX com
XUserAddAsync. - Quando o chat for iniciado pela primeira vez, recupere o XUID com
XUserGetId. - Crie um
PartyXblLocalChatUserchamandoPartyXblManager::CreateLocalChatUsercom o XUID. - Chame
PartyXblManager::LoginToPlayFabcom esse objeto de usuário.- No GDK (console e PC) e no XDK, a biblioteca auxiliar busca internamente o token necessário dos serviços XBOX, conecta o jogador ao PlayFab usando as credenciais do XBOX e cria automaticamente uma conta do PlayFab na primeira entrada. As contas criadas dessa forma não têm e-mail nem nome de usuário associados.
- Em títulos que não são GDK/XDK (por exemplo, PC Win32 sem GDK), você recebe um
PartyXblTokenAndSignatureRequestedStateChange. Busque você mesmo o token dos serviços XBOX e devolva-o por meio dePartyXblManager::CompleteGetTokenAndSignatureRequest.
- Em caso de sucesso, você recebe um
PartyXblLoginToPlayFabCompletedStateChangecontendo a Entity ID e o token do PlayFab.
Para usuários remotos, use
PartyXblManager::CreateRemoteChatUser; nenhuma autenticação ou troca de token é necessária no fluxo de usuário remoto.O XUser é a ponte de identidade
Tudo o que vem depois (entrada no PlayFab, tokens de gravação de sessão MPSD, chamadas S2S, consultas de direitos) começa com umXUserHandle retornado por XUserAddAsync. Duas APIs são importantes para a integração do PlayFab:
Veja Identidade dos serviços XBOX para conhecer o modelo de entrada mais amplo (MSA, tokens XSTS, escopo de sandbox).
Títulos multiplataforma
O PlayFab dá suporte a muitos provedores de autenticação de plataforma. Ao lançar o mesmo título em iOS, Android, Steam ou PlayStation, não tente direcionar todos os jogadores pelo XUser; use o provedor de autenticação nativo do PlayFab da plataforma:- iOS — Apple ID (
LoginWithApple). - Android — Google Play Games (
LoginWithGoogleAccount). - Steam —
LoginWithSteam. - XBOX / GDK PC:
PFAuthenticationLoginWithXUserAsync(esta página).
Compras no aplicativo da Microsoft Store por meio da economia do PlayFab
Para títulos GDK que vendem itens no aplicativo pela Microsoft Store, o PlayFab atua como back-end de economia, enquanto a Microsoft Store processa a transação real. O PlayFab reconcilia as compras da Microsoft Store no inventário do PlayFab do jogador usando o método de direitos; o jogador deve estar conectado primeiro à conta XBOX.O fluxo
- O jogador está conectado ao XBOX (
XUserAddAsync) e ao PlayFab (PFAuthenticationLoginWithXUserAsync). - O jogador compra um item pela Microsoft Store no dispositivo.
- Seu título notifica o PlayFab sobre a compra.
- O PlayFab chama
ConsumeMicrosoftStoreEntitlementscom o token do XBOX e sincroniza o inventário do PlayFab do jogador, concedendo os novos itens.
Pré-requisitos do Partner Center
- Estar inscrito no XBOX Creators Program ou ser um Managed Partner.
- Identidade do editor configurada no Partner Center com o mesmo GUID de editor das informações de parceiro comercial do XBOX (
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee). - Aprovação de conceito para usar os serviços XBOX.
O complemento Microsoft Store do PlayFab não dá suporte a consumíveis gerenciados pela loja no Partner Center. Crie somente consumíveis gerenciados pelo desenvolvedor (ou duráveis).
Criar itens correspondentes no Partner Center e no PlayFab
A Product ID no Partner Center e a Item ID no PlayFab devem corresponder exatamente para que a sincronização de direitos funcione.- No Partner Center → Add-ons → Create a new Consumable (Developer-managed) (ou Durable). Insira uma Product ID exclusiva (por exemplo,
MyItem_001). - No PlayFab Game Manager → Engage → Economy → New item. Insira a mesma string em Item ID (
MyItem_001). Marque-o como Consumable ou Durable para corresponder ao Partner Center e salve.
Referência de terminologia
Catálogos e lojas: uma Item ID global
O PlayFab permite definir vários Catalogs por título e, dentro de cada Catalog, você pode agrupar itens em Stores. Para que a sincronização de direitos da Microsoft Store funcione, cada Product ID deve corresponder a exatamente uma Item ID em todas as versões de Catalog do seu título do PlayFab. Errado: a mesma ID reutilizada em vários catálogos:
Certo: uma Item ID por SKU, reutilizada livremente entre Stores:
As Stores dentro de um Catalog podem então agrupar livremente qualquer subconjunto desses itens exclusivos:
Veja também
- Identidade dos serviços XBOX: XUser, MSA, tokens XSTS, escopo de sandbox.
- Multijogador do XBOX: PlayFab Party como opção de transporte multijogador.
- Game Chat 2: Game Chat 2 em camada sobre o PlayFab Party.
- Multiplayer Activity: integração de MPA + PlayFab Party.
- Início rápido do PlayFab Services SDK para GDK
- Preços do PlayFab
