La API de Inventario te permite acceder a la mayoría de la misma información que la página Mi Inventario de Roblox. Puedes comprobar 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, pantalones, ropa clásica, zapatos, camisetas)
- Compras y recompensas (insignias, pases, lugares comprados, servidores privados)
- Artículos de avatar (animaciones de avatar, cabezas clásicas, emotes, caras, cabello, cabezas)
Antes de usar la API de Inventario, debes generar una clave API o configurar OAuth 2 para tu aplicación. Los ejemplos en esta página utilizan claves API.
Verificar la propiedad de un artículo
Si deseas comprobar si un usuario posee un artículo en particular (por ejemplo, un artículo limitado, insignia, pase o servidor privado), utiliza el parámetro filter para comprobar una lista separada por comas de uno o más IDs. Este ejemplo de código verifica tres IDs 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 artículos
Si deseas mostrar, por ejemplo, solo los coleccionables que posee un usuario, utiliza el mismo código que arriba, pero con un diferente parámetro filter.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Combina y mezcla filtros utilizando una lista separada por punto y coma. Aquí hay algunos ejemplos:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=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 del Inventario. Para obtener más información, consulta Filtrado.
Paginación de resultados
Si una respuesta incluye un valor para nextPageToken, utiliza ese valor en el parámetro pageToken de la solicitud siguiente para recuperar la siguiente página. Para obtener más información, consulta Paginación.
Si el número de resultados es divisible por maxPageSize (por ejemplo, tienes 50 resultados y un maxPageSize de 25), puedes encontrar una situación en la cual tu respuesta incluye un valor para nextPageToken, pero una solicitud utilizando ese token no devuelve resultados:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Al implementar la paginación en tu aplicación, la mejor práctica es verificar no solo por un nextPageToken no vacío, sino también por un array inventoryItems no vacío.