Inventari utente

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

L'API inventario ti consente di accedere alla maggior parte delle stesse informazioni della pagina Roblox Il mio inventario .Puoi controllare se un utente possiede oggetti individuali e recuperare l'intera lista degli oggetti che un giocatore possiede.

Le risposte dall'API inventario includono oggetti delle seguenti categorie:

  • Abbigliamento (accessori,底,abbigliamento classico, scarpe, top)
  • Acquisti e premi (badge, pass, posti acquistati, server privati)
  • Oggetti avatar (animazioni avatar, teste classiche, emote, facce, capelli, teste)

Prima di utilizzare l'API inventario, devi generare una chiave API o configurare OAuth 2 per la tua applicazione.Gli esempi di questa pagina utilizzano le chiavi API.

Controlla la proprietà dell'elemento

Se vuoi controllare se un utente possiede un particolare oggetto (ad esempio, un limite, un badge, un Passaggi di giocoo un Serverprivato), usa il parametro filter per controllare una lista separata da virgoletta di uno o più ID.Questo esempio di codice controlla tre ID risorse:


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 seguente risposta indica che l'utente possiede uno dei tre oggetti:


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

Filtri gli elementi

Se vuoi visualizzare, ad esempio, solo i collezionabili che un utente possiede, usa lo stesso codice di cui sopra, solo con un parametro diverso filter.


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

Mescola e abbina i filtri utilizzando una lista separata da virgoletta. Ecco alcuni esempi:


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

La maggior parte delle chiamate all'API non richiede alcuna autorizzazione specifica, ma diversi filtri richiedono permessi di lettura inventario.Per ulteriori informazioni, vedi Filtraggio.

Pagina i risultati

Se una risposta include un valore per nextPageToken , usa quel valore nel parametro pageToken della richiesta successiva per recuperare la pagina successiva.Per ulteriori informazioni, vedi Paginazione.

Se il numero di risultati è divisibile per maxPageSize (ad esempio, hai 50 risultati e un maxPageSize di 25), puoi trovare una situazione in cui la tua risposta include un valore per nextPageToken , ma una richiesta utilizzando quel token non restituisce risultati:


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

Quando si implementa la paginazione nell'applicazione, la migliore pratica è controllare non solo per un non vuoto nextPageToken , ma anche per un non vuoto inventoryItems vettore.