Inventários de Usuário

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

A API de Inventário permite que você acesse a maioria das mesmas informações que a página Meu Inventário do Roblox. Você pode verificar se um usuário possui itens individuais e recuperar a lista completa de itens que um jogador possui.

Respostas da API de Inventário incluem itens das seguintes categorias:

  • Roupas (acessórios, calças, roupas clássicas, sapatos, tops)
  • Compras e recompensas (insígnias, passes, locais comprados, servidores privados)
  • Itens de avatar (animações de avatar, cabeças clássicas, emotes, rostos, cabelo, cabeças)

Antes de usar a API de Inventário, você deve gerar uma chave de API ou Configurar o OAuth 2 para o seu aplicativo. Os exemplos nesta página usam chaves de API.

Verificando a Propriedade do Item

Se você quiser verificar se um usuário possui um item específico (por exemplo, um emblema, passe, serviço de assinatura ou servidor privado), use o parâmetro filter para verificar por uma lista de IDs separados por um ou mais IDs. Este exemplo de código verifica três IDs de recursos:


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);
});

A seguinte resposta indica que o usuário possui um dos três itens:


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

Filtrando Itens

Se você quiser exibir, por exemplo, apenas os colecionáveis que um usuário possui, use o mesmo código que acima, apenas com um diferente filter parâmetro.


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

Misture e corresponda a filtros usando uma lista separada por ponto-e-vírgula. Aqui estão alguns exemplos:


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

A maioria das chamadas à API não requer permissões específicas, mas vários filtros requerem permissões de leitura de inventário. Para mais informações, see Filtrando .

Pagando Resultados

Se uma resposta incluir um valor para nextPageToken, use-o no parâmetro pageToken da solicitação seguinte para recuperar a próxima página. Para mais informações, see Pagination.

Se o número de resultados for dividível por maxPageSize (por exemplo, você tem 50 resultados e um maxPageSize de 25), você pode encontrar uma situação na qual sua resposta inclui um valor para nextPageToken , mas uma solicitação usando esse token retorna sem resultados:


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

Ao implementar pagamento em seu aplicativo, a melhor prática é verificar não apenas por um não-vazio nextPageToken , mas também por um não-vazio inventoryItems matriz / lista.