> ## 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 do User Generated Content (UGC)

> Início rápido do PlayFab UGC usando chamadas de serviço a serviço para se conectar a itens de conteúdo de rascunho, publicá-los e expor conteúdo criado por jogadores no jogo.

# Início rápido do User-Generated Content (UGC)

O objetivo deste guia é explicar como começar rapidamente com o UGC, usando chamadas diretas de serviço a serviço. Mostramos passo a passo como se conectar aos itens de conteúdo UGC de rascunho, publicar esses itens e, em seguida, pesquisá-los e encontrá-los.

## Obter um token de entidade

O UGC foi projetado para funcionar com entidades do PlayFab, portanto, a primeira etapa é obter um token de entidade usando [LoginWithCustomID](https://learn.microsoft.com/en-us/rest/api/playfab/client/authentication/login-with-custom-id). Este exemplo mostra uma chamada de serviço.

```json theme={null}
{
  "CustomId": "exampleUser",
  "CreateAccount": true,
  "TitleId": "DC7B"
}
```

## Criar URLs de blob

O sistema de UGC usa o [Armazenamento de Blobs do Azure](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction) para armazenar todo o conteúdo (arquivos e imagens) associado ao UGC do seu título. Para carregar o conteúdo, primeiro precisamos chamar a API [CreateUploadUrls](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-upload-urls), passando os nomes e tamanhos dos arquivos (em bytes) para criar os novos blobs. Por exemplo, se você quisesse carregar um arquivo de texto e uma imagem PNG, passaria o seguinte no corpo da solicitação:

```json theme={null}
{
  "Files": [
    {
      "FileName": "HelloWorld.txt",
      "FileSize": 12
    },
    {
      "FileName": "PlayFabLogo.png",
      "FileSize": 20725
    }
  ]
}
```

A resposta inclui um `Id` e uma `Url` para cada parte do conteúdo:

```json theme={null}
{
    "code": 200,
    "status": "OK",
    "data": {
        "UploadUrls": [
            {
                "Id": "[Content ID]",
                "Url": "[Content Url + '?' + Token]",
                "FileName": "HelloWorld.txt"
            },
            {
                "Id": "[Image ID]",
                "Url": "[Image Url + '?' + Token]",
                "FileName": "PlayFabLogo.png"
            }
        ]
    }
}
```

## Criar um item UGC de rascunho

Você cria itens UGC de "rascunho" chamando a API [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) com o parâmetro `"Type":"ugc"`. Os criadores podem revisar e acessar itens de rascunho antes de publicá-los. Para criar um item de rascunho, você precisa de:

* O `EntityToken` da chamada anterior no cabeçalho X-EntityToken.
* O `Entity.Id` da chamada anterior no `CreatorEntityKey.Id` do item.
* O `TitleId` do título no sourceId do item.

Essa chamada se parece com o seguinte.

```json theme={null}
{
  "Item": {
   "Type": "ugc",
    "Title": {
      "NEUTRAL": "Neutral Title Test",
      "en-GB": "en-gb Title",
      "en-US": "en-us Title"
    },
    "Description": {
      "NEUTRAL": "Neutral Description Test",
      "en-GB": "en-gb Description",
      "en-US": "en-us Description"
    },
    "startDate": "2018-10-18T20:01:26.1520582Z"
  }
}
```

Isso retorna o item de rascunho criado com um `Id`. Salve o `Id` para usá-lo mais tarde.

```json theme={null}
       "Item": {
            "SourceEntity": {
                "Id": "1184A",
                "Type": "title",
                "TypeString": "title"
            },
            "SourceEntityKey": {
                "Id": "1184A",
                "Type": "title",
                "TypeString": "title"
            },
            "Id": "44857e2b-c93b-4054-80be-7890028201ff",
            "Type": "ugc",
            "Title": {
              "NEUTRAL": "Neutral Title Test",
              "en-GB": "en-gb Title",
              "en-US": "en-us Title"
            },
          ...
        }
```

## Obter IDs de itens de rascunho de um jogador

Para obter IDs de itens de rascunho de um jogador específico, a API [GetEntityDraftItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/get-entity-draft-items) pode ser usada. Entidades de título podem chamar essa API com o ID do jogador no parâmetro `Entity`, e a API retorna uma lista de itens de rascunho desse jogador específico. Somente entidades de título podem passar um parâmetro `Entity`. Entidades de jogador podem chamar a API sem um parâmetro `Entity`, e a API retorna uma lista de itens de rascunho criados pelo jogador que fez a chamada.

```json theme={null}
{
  "Count": 2,
  "Entity": {
    "Id": "C88F55C6A734B1DC",
    "Type": "title_player_account",
    "TypeString": "title_player_account"
  }
}
```

## Publicar um item UGC

Quando um item estiver em rascunho, você poderá colocá-lo em um estado publicado usando [PublishDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/publish-draft-item). Depois que um item UGC é publicado, ele pode ser pesquisado e fica disponível publicamente. Você precisa usar o `Id` do item retornado na resposta de `CreateDraftItem`.

```json theme={null}
{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}
```

## Obter o status de publicação de um item UGC

Usando o `Id` do item, você pode obter o status de uma publicação de um item no seu catálogo de UGC usando a API [GetItemPublishStatus](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/get-item-publish-status).

```json theme={null}
{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}
```

Os valores possíveis de `Result` da publicação são os seguintes:

* `Unknown`
* `Pending`
* `Succeeded`
* `Failed`
* `Canceled`

Publicar novamente um item atualiza o item publicado para corresponder ao item de rascunho atual.

## Fazer uma pesquisa

Depois que a chamada de publicação é bem-sucedida, todos os jogadores podem acessar o item no catálogo público. A [API `SearchItems`](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/search-items) executa uma pesquisa no catálogo publicado (incluindo itens UGC) usando os parâmetros fornecidos e retorna um conjunto de resultados paginados. Os campos `Filter`, `OrderBy` e `Select` usam OData como padrão de consulta.

```json theme={null}
{
  "Search": "Test",
  "Count": 2
}
```

## Confira também

[Publique seu primeiro conteúdo gerado pelo usuário](/pt-BR/services/playfab/economy-monetization/economy-v2/tutorials/publish-ugc)


## Related topics

- [PlayFab User Generated Content](/pt-BR/services/playfab/economy-monetization/economy-v2/ugc/overview.md)
- [Documentação do PlayFab UGC](/pt-BR/services/playfab/economy-monetization/economy-v2/ugc/index.md)
- [Início rápido](/pt-BR/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [Referência do Game Manager](/pt-BR/services/playfab/live-service-management/gamemanager/reference.md)
- [Início rápido de moeda virtual do Economy v2](/pt-BR/services/playfab/economy-monetization/economy-v2/tutorials/currencies.md)
