La API de inventario le permite acceder a la mayoría de la misma información que la página Mi Inventario de Roblox. Puede 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 elementos de las siguientes categorías:
- Ropa (accesorios, pantalones, ropa clásica, zapatos, camisas)
- Compras y recompensas (insignias, pases, lugares comprados, servidores privados)
- Artículos de avatar (animaciones de avatar, cabezas clásicas, emotes, caras, cabellos, cabezas)
Antes de usar la API de inventario, debes generar una llave de API o Configurar OAuth 2 para tu aplicación (app). Los ejemplos en esta página usan llaves de API.
Revisando la propiedad del artículo
Si desea verificar si un usuario posee un artículo específico (por ejemplo, un emblema, pase, servicio o servidor privado), use el parámetro filter para verificar por una lista de ID común. Este ejemplo de código verifica 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 elementos:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Filtrar elementos
Si desea mostrar, por ejemplo, solo los coleccionables que un usuario posee, use el mismo código que se muestra, solo con un parámetro de filter diferente.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Mezcla y combina filtros usando una lista separada por semicolón. 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 de inventario. Para obtener más información, see Filtrado .
Pagando los resultados
Si una respuesta incluye un valor para nextPageToken , usa ese valor en el pageToken parámetro de la siguiente solicitud para recuperar la siguiente página. Para obtener más información, see Pagination .
Si el número de resultados es divisible por maxPageSize (por ejemplo, tiene 50 resultados y un maxPageSize de 25), puede encontrar una situación en la que su respuesta incluye un valor para nextPageToken , pero una solicitud que utiliza ese token no devuelve resultados:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Al implementar la página de pago en tu aplicación (app), lo mejor es comprobar no solo por un nextPageToken no vacío, sino también por un arreglo de inventoryItems no vacío.