> ## 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 Lua para Corona

> Configure un proyecto de Corona en Windows o Mac y realice su primera llamada a la API de PlayFab en Lua mediante la biblioteca cliente del SDK de Corona de PlayFab.

Este inicio rápido le ayuda a realizar su primera llamada a la API de PlayFab en el motor Corona.

Antes de poder llamar a cualquier API de PlayFab, debe tener una [cuenta de desarrollador de PlayFab](https://developer.playfab.com).

## Configuración del proyecto de Corona

SO: este inicio rápido está escrito para Windows. Sin embargo, también debería funcionar bien en un equipo Mac.

1. Descargue e instale Corona:  [https://coronalabs.com/](https://coronalabs.com/).

2. Ejecute Corona y cree un proyecto nuevo. El siguiente vínculo contiene información que puede ayudarle con los primeros pasos si aún no los ha realizado:  [https://docs.coronalabs.com/guide/start/installWin/index.html](https://docs.coronalabs.com/guide/start/installWin/index.html)

3. Una vez que haya instalado, iniciado sesión y creado un proyecto nuevo, debería ver varias ventanas con un aspecto similar al del ejemplo que se muestra a continuación.

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/lua/new-project.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=bdbfa4a84974159ffd7b4b0641f540cb" alt="Instalar el SDK de PlayFab" width="1447" height="926" data-path="images/playfab/sdks/lua/new-project.png" />

4. Active el complemento PlayFab Client en Corona Marketplace:

   [https://marketplace.coronalabs.com/plugin/playfab-client](https://marketplace.coronalabs.com/plugin/playfab-client)

5. La instalación de PlayFab está completa.

## Configuración de la primera llamada a la API

Esta guía proporciona los pasos mínimos necesarios para realizar su primera llamada a la API de PlayFab. La confirmación es visible en el registro de salida del motor Corona.

En su editor de texto favorito, *agregue* las líneas siguientes a `build.settings`.

```lua theme={null}
settings =
{
    -- ADD THESE THREE LINES at the top, leave everything else as-is
    plugins = {
        ["plugin.playfab.client"] = { publisherId = "com.playfab" }
    },

-- Other existing lines...
}
```

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

En su editor de texto favorito, *reemplace* el contenido del archivo **main.lua** por el contenido que se muestra a continuación.

```lua theme={null}
local pfClient = require("plugin.playfab.client")
local PlayFabClientApi = pfClient.PlayFabClientApi
PlayFabClientApi.settings.titleId = "144"

local loginRequest = {
    -- See the API reference for LoginWithCustomID.
    CustomId = "GettingStartedGuide",
    CreateAccount = true
}
PlayFabClientApi.LoginWithCustomID(loginRequest,
    function(result) print("Congratulations, you made your first successful API call!") end,
    function(error) print("Something went wrong with your first API call.\nHere's some debug information:\n" .. error.errorMessage) end
)
```

## Finalización y ejecución

Corona ejecuta automáticamente el código fuente del proyecto en cuanto guarda. Por lo tanto, tan pronto como actualice y guarde estos dos archivos, debería ver lo siguiente:

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/lua/finish-and-execute.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=59fd602abd813dbde3966cc4373877bf" alt="Descargar el complemento de Corona - Finalización y ejecución" width="1182" height="974" data-path="images/playfab/sdks/lua/finish-and-execute.png" />

En este punto, 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).

¡Feliz programación!

## Análisis del código

Esta última sección opcional describe cada parte del ejemplo anterior, línea por línea.

* build.settings
  * `plugins = {`
    * Esto invoca el sistema de complementos de Corona y le indica que descargue e instale complementos de Corona Marketplace en el proyecto
  * `["plugin.playfab.client"] = { publisherId = "com.playfab" }`
    * Esto le indica que descargue específicamente el complemento PlayFab Client.
* main.lua
  * Líneas require():
    * Estas son las importaciones mínimas que necesita para realizar llamadas a la API de PlayFab.
  * `PlayFabClientApi.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.
  * `local loginRequest = { 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.
  * `PlayFabClientApi.LoginWithCustomID(loginRequest, {OnLoginSuccess-function}, {OnLoginError-function})`
    * Esto inicia la solicitud asincrónica a `LoginWithCustomID`, que llamará a la primera devolución de llamada (`OnLoginSuccess`) si se realiza correctamente, o a la segunda función (`OnLoginError`) en caso de error.
  * 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)
    * `OnLoginSuccess` es cualquier función que acepte un único parámetro (result).
      * El objeto result contendrá la información solicitada, según la API a la que se haya llamado.
      * `LoginResult` 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.
    * `OnLoginError` es cualquier función que acepte un único parámetro (error).
      * Las llamadas a la API pueden fallar por muchos motivos, y siempre debe intentar controlar los errores.
      * 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.
      * 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).


## Related topics

- [Inicio rápido de Lua para Defold](/es/services/playfab/sdks/lua/quickstart-defold.md)
- [Inicio rápido de C++ para Linux](/es/services/playfab/sdks/playfab-cpp/quickstart-linux.md)
- [Inicio rápido de C++ para Windows](/es/services/playfab/sdks/playfab-cpp/quickstart-windows.md)
- [Inicio rápido de Unity](/es/services/playfab/sdks/unity3d/quickstart.md)
- [Inicio rápido de C/C++ para GDK](/es/services/playfab/sdks/playfab-cpp/quickstart-gdk.md)
