> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Solicitar parties dos seus serviços com RequestPartyService

> Tutorial para chamar a API RequestPartyService do PlayFab a partir dos seus próprios serviços de jogo para provisionar redes do Party para sessões multijogador de chat e de dados.

Este tutorial descreve as etapas para solicitar parties dos seus próprios serviços, em vez de estritamente do cliente, usando a ***API RequestPartyService***, oferecendo mais flexibilidade e controle sobre como você integra o PlayFab Party ao seu jogo por meio de uma chamada HTTP.

* Ela permite que você use seus próprios mecanismos de autenticação e autorização ou personalize a interface do usuário e a experiência do usuário de criação de parties e de ingresso nelas.
* Ela permite que você aloque o PlayFab Party estritamente nos seus próprios termos. Ao gerenciar a rede de retransmissão do lado do serviço, você pode configurar de forma eficaz e confiável topologias de rede complexas usando seu próprio serviço ou com a ajuda do [PlayStream e do CloudScript](/pt-BR/services/playfab/data-analytics/acting-data/action-rules-using-cloudscript-actions-with-playstream).
* Ela adiciona uma defesa extra contra abusos por parte dos clientes, dando a você o poder de restringir a criação do Party apenas aos serviços.

## Pré-requisitos

Você precisa ter uma conta do PlayFab e ter habilitado o recurso Party.

1. Crie ou entre na sua [conta do PlayFab](https://developer.playfab.com).
2. [Habilite o recurso Party por meio do Game Manager](/pt-BR/services/playfab/multiplayer/networking/enable-party) na sua conta do PlayFab.
3. Baixe e configure o SDK do Party. Para obter os links de download, confira [SDKs do Party](/pt-BR/services/playfab/multiplayer/networking/party-sdks/overview).

<Note>
  Este tutorial é um processo alternativo para algumas das etapas do artigo mais abrangente [Início rápido do Party](/pt-BR/services/playfab/multiplayer/networking/quickstart).
</Note>

### 1. Obter a chave secreta do seu título do PlayFab no Game Manager

1. Entre no **[Game Manager](https://developer.playfab.com/)**.
2. Selecione seu título.
3. No canto superior direito, selecione o ícone de engrenagem.
4. Selecione **Title settings** e, em seguida, selecione a guia **Secret Keys**.

Para obter mais informações, confira [Gerenciamento de chaves secretas](/pt-BR/services/playfab/live-service-management/gamemanager/secret-key-management).

### 2. Obter um token de entidade do PlayFab

Use a API REST [GetEntityToken](https://learn.microsoft.com/en-us/rest/api/playfab/authentication/authentication/get-entity-token) no seu serviço para trocar a SecretKey do título por um token de entidade.

```js theme={null}
async function getEntityToken(titleId, secretKey) {
  try {

    // Construct the request URL
    const requestUrl =
      `https://${titleId}.playfabapi.com/Authentication/GetEntityToken`;

    // Create headers with your secret key and content type
    const headers = {
      'X-SecretKey': secretKey,
      'Content-Type': 'application/json', // Add this line
    };

    // Make the POST request
    const response = await fetch(requestUrl, {
      method: 'POST',
      headers: headers,
    });

    // Check if the response is successful
    if (response.ok) {
      const responseBody = await response.json();
      console.log(`Entity Token: ${responseBody.data.EntityToken}`);
      return responseBody.data.EntityToken;
    } else {
      console.error(`Error: ${response.status}`);
    }
  } catch (error) {
    console.error(`Exception: ${error.message}`);
  }
}
```

### 3. Fazer uma solicitação POST

Use o token de entidade obtido para fazer uma solicitação POST ao ponto de extremidade [RequestPartyService](https://learn.microsoft.com/en-us/rest/api/playfab/multiplayer/multiplayer-server/request-party-service) com os parâmetros desejados para a party.

```js theme={null}
async function requestPartyService(titleId, entityToken) {
  try {

    // Construct the request URL
    const requestUrl = `https://${titleId}.playfabapi.com/Party/RequestPartyService`;

    // Create headers with the entity token and content type
    const headers = {
      'X-EntityToken': entityToken,
      'Content-Type': 'application/json',
    };

    // Create the request body with PartyNetworkConfiguration and PreferredRegions
    const requestBody = {
      NetworkConfiguration: {
        MaxUsers: 4,
        MaxDevices: 4,
        MaxDevicesPerUser: 1,
        MaxUsersPerDevice: 1,
      },
      PreferredRegions: ['WestUs'],
    };

    // Make the POST request
    const response = await fetch(requestUrl, {
      method: 'POST',
      headers: headers,
      body: JSON.stringify(requestBody),
    });

    // Check if the response is successful
    if (response.ok) {
      const responseBody = await response.json();
      console.log('Party service response:', responseBody);
    } else {
      console.error(`Error: ${response.status}`);
    }
  } catch (error) {
    console.error(`Exception: ${error.message}`);
  }
  return null;
}
```

### 4. Receber uma resposta

Depois de fazer a solicitação POST, você receberá uma resposta contendo um [descritor de rede](https://learn.microsoft.com/en-us/rest/api/playfab/multiplayer/multiplayer-server/request-party-service#requestpartyserviceresponse), que contém todos os detalhes necessários para que os clientes se conectem ao servidor da party.

```json theme={null}
{
    "code": 200,
    "status": "OK",
    "data": {
        "PartyId": "0543645b-9004-4784-95d7-459cef4a23fa",
        "SerializedNetworkDescriptor": "AwBnP28mW2RDBQSQhEeV10Wc70oj+ldlc3RVcwAAAAAAAAAAAAAAAAAAPXqiEpapxSC+Owo1h8qJ5NuEOmtS0oeJqq8h6q5ybZZrbktkbnMtaXIwLTgxZTUtNTI3MWZiZDYtMmMyYS00NGE0LThhNjAtNmZlZjI4ZDAzMjc5Lndlc3R1cy5jbG91ZGFwcC5henVyZS5jb20=",
        "InvitationId": "e95366d4-c9ed-4a6e-94f6-215c1d69d467"
    }
}
```

### 5. Compartilhar o descritor de rede

Compartilhe o descritor de rede com os possíveis participantes da sua rede. Há várias maneiras de fazer isso. Os clientes que usam o PlayFab Lobby devem seguir as orientações em [Integrar o Party ao Lobby](/pt-BR/services/playfab/multiplayer/networking/party-lobby-integration). Você também pode [compartilhar manualmente](/pt-BR/services/playfab/multiplayer/networking/quickstart#compartilhar-manualmente-o-descritor-de-rede-do-party) o descritor de rede do Party para fins de testes rápidos ou usar seu próprio serviço de lobby e convites, de acordo com as necessidades do seu jogo.

### 6. Conectar-se ao servidor do Party

Os clientes podem usar o descritor de rede para se conectar ao servidor do Party usando os SDKs nativos normalmente. Se esta for a primeira vez que você se conecta a uma rede do Party, confira a seção [Conectar-se a uma rede do Party](/pt-BR/services/playfab/multiplayer/networking/quickstart#conectar-se-a-uma-rede-do-party) do guia de início rápido.

## Confira também

* [Início rápido do Party](/pt-BR/services/playfab/multiplayer/networking/quickstart)
* [Recursos do Party](/pt-BR/services/playfab/multiplayer/networking/party-features)
* [Exemplos do Party](/pt-BR/services/playfab/multiplayer/networking/party-samples)
* [Serviços multijogador](/pt-BR/services/playfab/multiplayer/mpintro)
* [Convites do Party e o modelo de segurança](/pt-BR/services/playfab/multiplayer/networking/concepts-invitations-security-model)
* [Documentação de referência da API do Party](/pt-BR/services/playfab/multiplayer/networking/reference/party_members)


## Related topics

- [Solicitar serviço do Party](/pt-BR/services/playfab/api-references/rest/multiplayer/multiplayer-server/request-party-service.md)
- [Solicitar uma ID da Store do Usuário para autenticação de serviço para serviço](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid.md)
- [Introdução à chamada direta do serviço Multiplayer](/pt-BR/services/xbox-services/multiplayer/concepts/live-intro-calling-mp-directly.md)
- [Detectar o acesso à assinatura do XBOX Game Pass a partir do seu serviço](/pt-BR/publishing/xstore-commerce/xstore-detecting-game-pass.md)
- [Solicitar uma ID da Store do Usuário com X-tokens ou OAuth 2.0](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
