Inventarios de usuario

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

La API de inventario te permite acceder a la mayoría de la misma información que la página de Roblox Mi inventario .Puedes verificar si un usuario posee artículos individuales y recuperar la lista completa de artículos que posee un jugador.

Las respuestas de la API de inventario incluyen artículos de las siguientes categorías:

  • Ropa (accesorios, prendas inferiores, ropa clásica, zapatos, tops)
  • Compras y recompensas (medallas, pases, lugares comprados, servidores privados)
  • Artículos de avatar (animaciones de avatar, cabezas clásicas, emotes, caras, pelo, cabezas)

Antes de usar la API de inventario, debe generar una clave API o configurar OAuth 2 para su aplicación (app).Los ejemplos de esta página utilizan claves de API.

Compruebe la propiedad del artículo

Si quieres verificar si un usuario posee un artículo particular (por ejemplo, un límite, emblema, pase o servidor privado), usa el parámetro filter para verificar una lista separada por comas de uno o más ID.Este ejemplo de código comprueba tres ID de activos:


const https = require('node:https');
const userId = 11111111111;
const hostname = 'apis.roblox.com';
const path = `/cloud/v2/users/${userId}/inventory-items`;
const params = '?filter=assetIds=62724852,1028595,4773588762';
const url = 'https://' + hostname + path + params;
const apiKey = '123456789012345678901234567890123456789012345678';
const options = {
headers: {
'x-api-key': `${apiKey}`,
},
};
https
.get(url, options, (response) => {
console.log('statusCode:', response.statusCode);
let data = '';
response.on('data', (d) => {
data += d;
});
response.on('end', () => {
if (response.statusCode === 200) {
const jsonData = JSON.parse(data);
console.log('Response Data:', JSON.stringify(jsonData, null, 2));
} else {
console.error('Error:', response.statusCode, response.statusMessage);
}
});
})
.on('error', (e) => {
console.error(e);
});

La siguiente respuesta indica que el usuario posee uno de los tres artículos:


{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}

Filtrar elementos

Si quieres mostrar, por ejemplo, solo los coleccionables que posee un usuario, usa el mismo código que el anterior, solo con un parámetro diferente filter.


const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';

Mezcla y combina filtros usando una lista separada por coma. Aquí hay algunos ejemplos:


filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTS
filter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999
filter=gamePasses=true;badges=true

La mayoría de las llamadas a la API no requieren permisos específicos, pero varios filtros requieren permisos de lectura de inventario.Para obtener más información, vea Filtreo.

Paginar resultados

Si una respuesta incluye un valor para nextPageToken , use ese valor en el parámetro pageToken de la solicitud siguiente para recuperar la siguiente página.Para obtener más información, vea Paginación.

Si el número de resultados es divisible por maxPageSize (por ejemplo, tienes 50 resultados y un maxPageSize de 25), puedes encontrarte con una situación en la que tu respuesta incluya un valor para nextPageToken , pero una solicitud que use ese token no devuelve resultados:


GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}

Al implementar la página en tu aplicación (app), la mejor práctica es verificar no solo por un no vacío nextPageToken , sino también por un no vacío inventoryItems matriz/lista.