> ## 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.

# Solicitud de parties desde sus servicios con RequestPartyService

> Tutorial para llamar a la API RequestPartyService de PlayFab desde sus propios servicios de juego para aprovisionar redes de Party para sesiones multijugador de chat y datos.

En este tutorial se describen los pasos para solicitar parties desde sus propios servicios en lugar de estrictamente desde el cliente mediante la ***API RequestPartyService***, lo que le proporciona más flexibilidad y control sobre cómo integrar PlayFab Party en su juego a través de una llamada HTTP.

* Le permite usar sus propios mecanismos de autenticación y autorización, o personalizar la interfaz de usuario y la experiencia de usuario de la creación y unión a parties.
* Le permite asignar PlayFab Party estrictamente en sus propios términos. Al administrar la red de retransmisión desde el lado del servicio, puede configurar de forma eficaz y confiable topologías de red complejas mediante su propio servicio o con la ayuda de [PlayStream y CloudScript](/services/playfab/data-analytics/acting-data/action-rules-using-cloudscript-actions-with-playstream).
* Agrega una defensa adicional contra el abuso por parte de los clientes al darle la posibilidad de restringir la creación de Party solo a los servicios.

## Requisitos previos

Necesita una cuenta de PlayFab y haber habilitado la característica de Party.

1. Cree o inicie sesión en su [cuenta de PlayFab](https://developer.playfab.com).
2. [Habilite la característica de Party a través de Game Manager](/services/playfab/multiplayer/networking/enable-party) desde su cuenta de PlayFab.
3. Descargue y configure el SDK de Party. Para obtener los vínculos de descarga, consulte [SDK de Party](/services/playfab/multiplayer/networking/party-sdks/overview).

<Note>
  Este tutorial es un proceso alternativo a algunos de los pasos del artículo más completo [Inicio rápido de Party](/services/playfab/multiplayer/networking/quickstart).
</Note>

### 1. Obtenga la clave secreta del título de PlayFab desde GameManager

1. Inicie sesión en **[Game Manager](https://developer.playfab.com/)**.
2. Seleccione su título.
3. En la esquina superior derecha, seleccione el icono de engranaje.
4. Seleccione **Title settings** y, a continuación, seleccione la pestaña **Secret Keys**.

Para obtener más información, consulte [Administración de claves secretas](/services/playfab/live-service-management/gamemanager/secret-key-management).

### 2. Obtenga un token de entidad de PlayFab

Use la API REST [GetEntityToken](https://learn.microsoft.com/en-us/rest/api/playfab/authentication/authentication/get-entity-token) desde su servicio para intercambiar la SecretKey del título por un token de entidad.

```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. Realice una solicitud POST

Use el token de entidad recuperado para realizar una solicitud POST al punto de conexión [RequestPartyService](https://learn.microsoft.com/en-us/rest/api/playfab/multiplayer/multiplayer-server/request-party-service) con los parámetros deseados para la 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. Reciba una respuesta

Después de realizar la solicitud POST, recibirá una respuesta que contiene un [descriptor de red](https://learn.microsoft.com/en-us/rest/api/playfab/multiplayer/multiplayer-server/request-party-service#requestpartyserviceresponse), que contiene todos los detalles necesarios para que los clientes se conecten al servidor de 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. Comparta el descriptor de red

Comparta el descriptor de red con los posibles participantes de su red. Hay varias maneras de hacerlo. Los clientes que usan PlayFab Lobby deben seguir las instrucciones de [Integración de Party con Lobby](/services/playfab/multiplayer/networking/party-lobby-integration). También puede [compartir manualmente](/services/playfab/multiplayer/networking/quickstart#manually-share-party-network-descriptor) el descriptor de red de Party con fines de pruebas rápidas o usar su propio servicio de lobby e invitaciones según las necesidades de su juego.

### 6. Conéctese al servidor de Party

Los clientes pueden usar el descriptor de red para conectarse al servidor de Party mediante los SDK nativos como de costumbre. Si es la primera vez que se conecta a una red de Party, consulte la sección [Conexión a una red de Party](/services/playfab/multiplayer/networking/quickstart#connect-to-a-party-network) de la guía de inicio rápido.

## Consulte también

* [Inicio rápido de Party](/services/playfab/multiplayer/networking/quickstart)
* [Características de Party](/services/playfab/multiplayer/networking/party-features)
* [Ejemplos de Party](/services/playfab/multiplayer/networking/party-samples)
* [Servicios multijugador](/services/playfab/multiplayer/mpintro)
* [Invitaciones de Party y el modelo de seguridad](/services/playfab/multiplayer/networking/concepts-invitations-security-model)
* [Documentación de referencia de la API de Party](/services/playfab/multiplayer/networking/reference/party_members)


## Related topics

- [Solicitud de un identificador de la Tienda del usuario para la autenticación de servicio a servicio](/es/publishing/xstore-commerce/xstore-requesting-userstoreid.md)
- [Consulta de los derechos de los usuarios desde sus servicios](/es/publishing/xstore-commerce/xstore-query-entitlements.md)
- [Detección del acceso a la suscripción a XBOX Game Pass desde su servicio](/es/publishing/xstore-commerce/xstore-detecting-game-pass.md)
- [Renovación de una clave de User Store ID](/es/publishing/xstore-commerce/xstore-renew-userstoreid.md)
- [Solicitud de un User Store ID con tokens X u OAuth 2.0](/es/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
