> ## 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 contenido generado por el usuario (UGC)

> Inicio rápido de UGC de PlayFab con llamadas de servicio a servicio para conectarse a artículos de contenido en borrador, publicarlos y exponer el contenido creado por los jugadores en el juego.

# Inicio rápido de contenido generado por el usuario (UGC)

El propósito de esta guía es explicar cómo empezar rápidamente con UGC mediante llamadas directas de servicio a servicio. Le mostramos paso a paso cómo conectarse a los artículos de contenido de UGC en borrador, publicarlos y, después, buscarlos y encontrarlos.

## Obtención de un token de entidad

UGC está diseñado para funcionar con entidades de PlayFab, por lo que el primer paso es obtener un token de entidad mediante [LoginWithCustomID](https://learn.microsoft.com/en-us/rest/api/playfab/client/authentication/login-with-custom-id). En este ejemplo se muestra una llamada de servicio.

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

## Creación de direcciones URL de blob

El sistema de UGC usa [Azure Blob Storage](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction) para almacenar todo el contenido (archivos e imágenes) asociado al UGC de su título. Para cargar el contenido, primero es necesario llamar a la API [CreateUploadUrls](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-upload-urls), pasando los nombres de archivo y los tamaños (en bytes) para crear los nuevos blobs. Por ejemplo, si quisiera cargar un archivo de texto y una imagen PNG, pasaría lo siguiente en el cuerpo de la solicitud:

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

La respuesta incluye un `Id` y una `Url` para cada elemento de contenido:

```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"
            }
        ]
    }
}
```

## Creación de un artículo de UGC en borrador

Los artículos de UGC en "borrador" se crean llamando a la API [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) con el parámetro `"Type":"ugc"`. Los creadores pueden revisar los artículos en borrador y acceder a ellos antes de publicarlos. Para crear un artículo en borrador, necesita:

* El `EntityToken` de la llamada anterior en el encabezado X-EntityToken.
* El `Entity.Id` de la llamada anterior en el `CreatorEntityKey.Id` del artículo.
* El `TitleId` del título en el sourceId del artículo.

Esta llamada tiene un aspecto similar al siguiente.

```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"
  }
}
```

Esto devuelve el artículo en borrador creado con un `Id`. Guarde el `Id` para poder usarlo más adelante.

```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"
            },
          ...
        }
```

## Obtención de los identificadores de los artículos en borrador de un jugador

Para obtener los identificadores de los artículos en borrador de un jugador concreto, se puede usar la API [GetEntityDraftItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/get-entity-draft-items). Las entidades de título pueden llamar a esta API con el identificador del jugador en el parámetro `Entity`, y la API devuelve una lista de los artículos en borrador de ese jugador concreto. Solo las entidades de título pueden pasar un parámetro `Entity`. Las entidades de jugador pueden llamar a la API sin un parámetro `Entity`, y la API devuelve una lista de los artículos en borrador creados por el jugador que realiza la llamada.

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

## Publicación de un artículo de UGC

Una vez que un artículo está en borrador, puede pasarlo al estado publicado mediante [PublishDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/publish-draft-item). Una vez publicado un artículo de UGC, se puede buscar y está disponible públicamente. Debe usar el `Id` del artículo devuelto en la respuesta de `CreateDraftItem`.

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

## Obtención del estado de publicación de un artículo de UGC

Con el `Id` del artículo, puede obtener el estado de publicación de un artículo de su catálogo de UGC mediante la 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"
}
```

Los valores posibles de `Result` de la publicación son los siguientes:

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

Volver a publicar un artículo actualiza el artículo publicado para que coincida con el artículo en borrador actual.

## Realización de una búsqueda

Después de que la llamada de publicación se realice correctamente, todos los jugadores pueden acceder al artículo en el catálogo público. La [API `SearchItems`](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/search-items) ejecuta una búsqueda en el catálogo publicado (incluidos los artículos de UGC) con los parámetros proporcionados y devuelve un conjunto de resultados paginados. Los campos `Filter`, `OrderBy` y `Select` usan OData como estándar de consulta.

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

## Consulte también

[Publicación de su primer contenido generado por el usuario](/services/playfab/economy-monetization/economy-v2/tutorials/publish-ugc)


## Related topics

- [Contenido generado por el usuario de PlayFab](/es/services/playfab/economy-monetization/economy-v2/ugc/overview.md)
- [Publicación de su primer contenido generado por el usuario](/es/services/playfab/economy-monetization/economy-v2/tutorials/publish-ugc.md)
- [Referencia de Game Manager](/es/services/playfab/live-service-management/gamemanager/reference.md)
- [XR-018 Contenido generado por el usuario](/es/publishing/certification/xr/xr-018.md)
- [Moderación de su contenido generado por el usuario](/es/services/playfab/economy-monetization/economy-v2/ugc/moderation.md)
