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

# Início rápido de Lua para Corona

> Configure um projeto Corona no Windows ou Mac e faça sua primeira chamada à API do PlayFab em Lua usando a biblioteca de cliente do SDK do PlayFab para Corona.

Este início rápido ajuda você a fazer sua primeira chamada à API do PlayFab no mecanismo Corona.

Antes de chamar qualquer API do PlayFab, você precisa ter uma [conta de desenvolvedor do PlayFab](https://developer.playfab.com).

## Configuração do projeto Corona

SO: Este início rápido foi escrito para Windows. No entanto, ele também deve funcionar bem em um Mac.

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

2. Execute o Corona e crie um novo projeto. O link a seguir tem informações que podem ajudar nos seus primeiros passos, caso ainda não os tenha feito:  [https://docs.coronalabs.com/guide/start/installWin/index.html](https://docs.coronalabs.com/guide/start/installWin/index.html)

3. Depois de instalar, entrar e criar um novo projeto, você verá várias janelas parecidas com o exemplo mostrado abaixo.

   <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="Install PlayFab SDK" width="1447" height="926" data-path="images/playfab/sdks/lua/new-project.png" />

4. Ative o plug-in PlayFab Client no Corona Marketplace:

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

5. A instalação do PlayFab está concluída!

## Configurando sua primeira chamada à API

Este guia fornece as etapas mínimas necessárias para fazer sua primeira chamada à API do PlayFab. A confirmação fica visível no log de saída do Corona Engine.

No seu editor de texto favorito, *adicione* as seguintes linhas 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 o formato correto do objeto loginRequest neste exemplo, consulte a referência da API de [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid).
</Note>

No seu editor de texto favorito, *substitua* o conteúdo do arquivo **main.lua** pelo conteúdo mostrado abaixo.

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

## Concluir e executar

O Corona executa automaticamente o código-fonte do projeto assim que você salva. Portanto, assim que você atualizar e salvar esses dois arquivos, verá isto:

<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="Download Corona Plugin - Finish and Execute" width="1182" height="974" data-path="images/playfab/sdks/lua/finish-and-execute.png" />

Neste ponto, você pode começar a fazer outras chamadas à API e a criar seu jogo. Para obter uma lista de todas as chamadas disponíveis da API de cliente, consulte nossa documentação de [Referências de API do PlayFab](/pt-BR/services/playfab/api-references).

Boa programação!

## Desconstruir o código

Esta última seção opcional descreve cada parte do nosso exemplo acima, linha por linha.

* build.settings
  * `plugins = {`
    * Isso invoca o sistema de plug-ins do Corona e indica que ele deve baixar e instalar plug-ins do Corona Marketplace no seu projeto
  * `["plugin.playfab.client"] = { publisherId = "com.playfab" }`
    * Isso indica que ele deve baixar especificamente o plug-in PlayFab Client.
* main.lua
  * Linhas require():
    * Estas são as importações mínimas necessárias para fazer chamadas à API do PlayFab.
  * `PlayFabClientApi.settings.titleId = "xxxx"`
    * Todo desenvolvedor do PlayFab cria um título no Game Manager. Ao publicar seu jogo, você precisa codificar esse titleId no jogo. Isso permite que o cliente saiba como acessar os dados corretos no PlayFab. Para a maioria dos usuários, basta considerar isso uma etapa obrigatória para que o PlayFab funcione.
  * `local loginRequest = { CustomId = "GettingStartedGuide", CreateAccount = true }`
    * A maioria dos métodos da API do PlayFab exige parâmetros de entrada, e esses parâmetros são empacotados em um objeto de requisição
    * Cada método da API exige um objeto de requisição exclusivo, com uma combinação de parâmetros opcionais e obrigatórios
      * Para `LoginWithCustomIDRequest`, há um parâmetro obrigatório `CustomId`, que identifica um jogador de forma exclusiva, e `CreateAccount`, que permite a criação de uma nova conta com essa chamada.
  * `PlayFabClientApi.LoginWithCustomID(loginRequest, {OnLoginSuccess-function}, {OnLoginError-function})`
    * Isso inicia a requisição assíncrona para `LoginWithCustomID`, que chamará o primeiro callback (`OnLoginSuccess`) em caso de sucesso ou a segunda função (`OnLoginError`) em caso de falha.
  * Para o logon, a maioria dos desenvolvedores vai querer usar um método de logon mais adequado.
    * Consulte a [documentação de logon do PlayFab](xref:titleid.playfabapi.com.client.authentication) para obter uma lista de todos os métodos de logon e parâmetros de entrada. As opções comuns são:
      * [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` é qualquer função que aceite um único parâmetro (result).
      * O objeto result conterá as informações solicitadas, de acordo com a API chamada.
      * `LoginResult` contém algumas informações básicas sobre o jogador, mas, para a maioria dos usuários, o logon é simplesmente uma etapa obrigatória antes de chamar outras APIs.
    * `OnLoginError` é qualquer função que aceite um único parâmetro (error).
      * As chamadas à API podem falhar por vários motivos, e você deve sempre tentar tratar a falha.
      * Por que as chamadas à API falham (em ordem de probabilidade):
        * `PlayFabSettings.TitleId` não está definido. Se você se esquecer de definir `titleId` para o seu título, nada funcionará.
        * Parâmetros da requisição. Se você não tiver fornecido as informações corretas ou obrigatórias para uma determinada chamada à API, ela falhará. Consulte `error.errorMessage`, `error.errorDetails` ou `error.GenerateErrorReport()` para obter mais informações.
        * Problema de conectividade do dispositivo. Celulares perdem e recuperam a conectividade constantemente, portanto qualquer chamada à API pode falhar aleatoriamente a qualquer momento e funcionar logo em seguida. Entrar em um túnel pode desconectar você completamente.
        * Problema no servidor do PlayFab. Como em qualquer software, podem ocorrer problemas. Consulte nossas [notas de versão](/pt-BR/services/playfab/release-notes) para obter atualizações.
        * A internet não é 100% confiável. Às vezes, a mensagem é corrompida ou não chega ao servidor do PlayFab.
      * Se você estiver com dificuldades para depurar um problema e as informações do erro não forem suficientes, visite nossos [fóruns](https://community.playfab.com/index.html).


## Related topics

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