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

# Inicio rápido de NodeJS

> Instale la biblioteca cliente de Node.js de PlayFab desde npm y realice su primera llamada a la API de PlayFab desde un script de Node.js para autenticar a un jugador.

# Inicio rápido: biblioteca cliente de PlayFab para NodeJS

Empiece a trabajar con la biblioteca cliente de PlayFab para NodeJS para realizar su primera llamada a la API de PlayFab y autenticar a un jugador. Siga los pasos para instalar el paquete y probar código de ejemplo para tareas básicas.

## Requisitos previos

* Una [cuenta de desarrollador de PlayFab](https://developer.playfab.com). Para obtener información sobre cómo crear un título y encontrar el TitleId, consulte el [inicio rápido de Game Manager](/services/playfab/live-service-management/gamemanager/quickstart).
* [Node.js](https://nodejs.org/en/download/)
* Node debe estar en la variable de entorno PATH. Si usó el instalador, probablemente esté establecida en la ubicación predeterminada: C:/Program Files (x86)/nodejs/

## Configuración

Los comandos siguientes funcionan en Windows, macOS y Linux.

1. Cree una carpeta nueva para el proyecto \{NodeProjLocation}:

   `GettingStarted.js`

2. Abra una ventana de comandos en la carpeta del proyecto.

3. Ejecute este comando:

   `npm install playfab-sdk --save`

   (Mantenga esta ventana abierta; la volverá a usar más adelante.)

¡Instalación de PlayFab completada!

## Ejemplos de código

### Autenticación del cliente

Esta guía proporciona los pasos mínimos para que realice su primera llamada a la API de PlayFab, sin ninguna GUI ni comentarios en pantalla. La confirmación se realiza con el registro de la consola. Para obtener más información sobre los parámetros y los valores devueltos, se recomienda usar primero la [plantilla de Postman](/services/playfab/sdks/postman/postman-quickstart).

En su editor de texto favorito, actualice el contenido de GettingStarted.js de la forma siguiente:

<Note>
  Para consultar el formato correcto del objeto `loginRequest` de este ejemplo, vea la referencia de API de [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid).
</Note>

```javascript theme={null}
var PlayFab = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFab");
var PlayFabClient = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFabClient");

function DoExampleLoginWithCustomID() {
    PlayFab.settings.titleId = "144";
    var loginRequest = {
        // Currently, you need to look up the correct format for this object in the API reference for LoginWithCustomID. The Request Headers and Request Body are included as keys and values in the request object.
        TitleId: PlayFab.settings.titleId,
        CustomId: "GettingStartedGuide",
        CreateAccount: true
    };

    // For functions in the Node SDK, the first parameter will be the request object and the second parameter will be the callback function. The callback function executes after the request returns.
    PlayFabClient.LoginWithCustomID(loginRequest, LoginCallback);
}

function LoginCallback(error, result) {
    if (result !== null) {
        console.log("Congratulations, you made your first successful API call!");
    } else if (error !== null) {
        console.log("Something went wrong with your first API call.");
        console.log("Here's some debug information:");
        console.log(CompileErrorReport(error));
    }
}

// This is a utility function we haven't put into the core SDK yet. Feel free to use it.
function CompileErrorReport(error) {
    if (error == null)
        return "";
    var fullErrors = error.errorMessage;
    for (var paramName in error.errorDetails)
        for (var msgIdx in error.errorDetails[paramName])
            fullErrors += "\n" + paramName + ": " + error.errorDetails[paramName][msgIdx];
    return fullErrors;
}

// Kick off the actual login call
DoExampleLoginWithCustomID();
```

## Ejecución del código

1. En la ventana de consola que abrimos durante la instalación, ejecute el comando:

   `node GettingStarted.js`

   Debería ver el texto siguiente como resultado:

   "Congratulations, you made your first successful API call!"

Ahora, puede empezar a realizar otras llamadas a la API y a crear su juego.

Para obtener una lista de todas las llamadas a la API de cliente disponibles, consulte nuestra documentación de [referencias de API de PlayFab](/services/playfab/api-references).

## Análisis del código

En esta sección se explica en detalle cada parte del código del inicio rápido de Node.

En el SDK de Node, las funciones de `PlayFabClientSDK` reciben el nombre de la solicitud HTTP. Por ejemplo, la solicitud HTTP correspondiente a la función `LoginWithCustomID` también se llama "LoginWithCustomID". Los encabezados y el cuerpo de la solicitud se empaquetan en el objeto de solicitud de JavaScript como claves y valores.

* Desglose línea por línea de `GettingStarted.js`
  * `PlayFab.settings.titleId = "xxxx";`
    * Cada desarrollador de PlayFab crea un título en Game Manager. Cuando publique su juego, debe codificar ese TitleId en el juego. Esto permite que el cliente sepa cómo acceder a los datos correctos dentro de PlayFab. Para la mayoría de los usuarios, considérelo simplemente un paso obligatorio que hace que PlayFab funcione.

  * `var loginRequest = { TitleId: PlayFab.settings.titleId, CustomId: "GettingStartedGuide", CreateAccount: true };`
    * La mayoría de los métodos de la API de PlayFab requieren parámetros de entrada, y esos parámetros de entrada se empaquetan en un objeto de solicitud.
    * Cada método de la API requiere un objeto de solicitud único, con una combinación de parámetros opcionales y obligatorios.
      * Para `LoginWithCustomIDRequest`, hay un parámetro obligatorio, `CustomId`, que identifica de forma única a un jugador, y `CreateAccount`, que permite crear una cuenta nueva con esta llamada. `TitleId` es otro parámetro obligatorio en JavaScript, y debe coincidir con `PlayFab.settings.titleId`.
      * Para obtener información sobre dónde encontrar el `TitleId`, consulte el [inicio rápido de Game Manager](/services/playfab/live-service-management/gamemanager/quickstart).
* En este caso, `TitleId`, `customId` y `CreateAccount` proceden del cuerpo de la solicitud de `LoginWithCustomID`.
  * `PlayFabClientSDK.LoginWithCustomID(loginRequest, LoginCallback);`
    * Esto inicia la solicitud asincrónica a `LoginWithCustomID`, que llamará a LoginCallback cuando se complete la llamada a la API.

  * Para el inicio de sesión, la mayoría de los desarrolladores querrán usar un método de inicio de sesión más adecuado.
    * Consulte la [documentación de inicio de sesión de PlayFab](xref:titleid.playfabapi.com.client.authentication) para obtener una lista de todos los métodos de inicio de sesión y los parámetros de entrada. Las opciones comunes son:
      * [LoginWithAndroidDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)
      * [LoginWithIOSDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid)
      * [LoginWithEmailAddress](xref:titleid.playfabapi.com.client.authentication.loginwithemailaddress)
* `LoginCallback` contiene dos parámetros: `error` y `result`.
  * Si la llamada se realiza correctamente, `error` será `null` y el objeto `result` contendrá la información solicitada, según la API a la que se haya llamado.
    * Este `result` contiene información básica sobre el jugador, pero para la mayoría de los usuarios, el inicio de sesión es simplemente un paso obligatorio antes de llamar a otras API.
* Si error no es `null`, la llamada a la API ha fallado.

## Solución de problemas

* Las llamadas a la API pueden fallar por muchos motivos, y siempre debe intentar controlar los errores.
* El objeto error incluye el nombre del error, el código de error y el mensaje de error. En conjunto, esta información debería ser suficiente para diagnosticar el error.
* Motivos por los que fallan las llamadas a la API (en orden de probabilidad):
  * `PlayFabSettings.TitleId` no está establecido. Si olvida establecer `TitleId` en su título, nada funcionará.
  * Parámetros de la solicitud. Si no ha proporcionado la información correcta o necesaria para una llamada a la API concreta, esta fallará. Consulte `error.errorMessage`, `error.errorDetails` o `error.GenerateErrorReport()` para obtener más información.
  * Problema de conectividad del dispositivo. Los teléfonos móviles pierden y recuperan la conectividad constantemente, por lo que cualquier llamada a la API en cualquier momento puede fallar aleatoriamente y funcionar inmediatamente después. Entrar en un túnel puede desconectarle por completo.
  * Problema del servidor de PlayFab. Como ocurre con todo el software, puede haber problemas. Consulte nuestras [notas de la versión](/services/playfab/release-notes) para conocer las actualizaciones.
* Internet no es 100 % confiable. A veces, el mensaje se daña o no llega al servidor de PlayFab.
  * Los códigos de error globales de los métodos de la API se encuentran en [Códigos de error globales de los métodos de la API](/services/playfab/api-references/global-api-method-error-codes).
  * Si tiene dificultades para depurar un problema y la información contenida en el error no es suficiente, visítenos en nuestros [foros](https://community.playfab.com/index.html).

## Pasos siguientes

Este inicio rápido muestra un procedimiento simplificado para autenticar a un usuario. Para obtener información adicional sobre la autenticación de usuarios, consulte [Conceptos básicos y procedimientos recomendados de inicio de sesión](/services/playfab/identity/player-identity/login/login-basics-best-practices).

¡Feliz programación!


## Related topics

- [Lenguajes compatibles con PlayFab](/es/services/playfab/sdks/languages/index.md)
- [SDK de NodeJS](/es/services/playfab/sdks/nodejs/index.md)
- [Inicio rápido de Linux](/es/services/playfab/sdks/c/quickstart-linux.md)
- [Inicio rápido de iOS](/es/services/playfab/sdks/c/quickstart-ios.md)
- [Inicio rápido de Win32](/es/services/playfab/sdks/c/quickstart-win32.md)
