L'API dell'inventario ti consente di accedere alla maggior parte delle stesse informazioni della pagina Il mio inventario Roblox. Puoi controllare se un utente possiede singoli oggetti e recuperare la lista completa degli oggetti che un giocatore possiede.
Le risposte dall'API dell'inventario includono oggetti delle seguenti categorie:
- Abbigliamento (accessori, pantaloni, abbigliamento classico, scarpe, top)
- Acquisti e ricompense (badge, pass, luoghi acquistati, server privati)
- Oggetti per l'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 su questa pagina utilizzano le chiavi API.
Controllo della proprietà dell'oggetto
Se vuoi controllare se un utente possiede un particolare oggetto (ad esempio, un badge, un Passaggi di giocoo un Serverprivato), usa il parametro filter per controllare per una lista separata di uno o più ID. Questo esempio di codice controlla tre ID di 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 risposta seguente indica che l'utente possiede uno dei tre articoli:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Oggetti di filtro
Se vuoi visualizzare, ad esempio, solo i collezionabili di cui un utente possiede, usa lo stesso codice di cui sopra, con un solo filter parametro diversi.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Miscela e abbina filtri usando una lista separata da un semicollo. Ecco alcuni esempi:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
La maggior parte delle chiamate all'API non richiede alcuna autorizzazione specifica, ma diversi filtri richiedono autorizzazioni di lettura dell'inventario. Per ulteriori informazioni, vedi Filtraggio .
Pagamento dei risultati
Se una risposta include un valore per nextPageToken , usa quel valore nel parametro pageToken della richiesta successiva per recuperare la prossima pagina. Per ulteriori informazioni, vedi Pagination .
Se il numero di risultati è diviso per maxPageSize (per esempio, hai 50 risultati e un maxPageSize di 25), puoi incontrare una situazione in cui la tua risposta include un valore per nextPageToken , ma una richiesta che utilizza quel token non restituisce risultati:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Durante l'implementazione della pagination nella tua applicazione, la migliore pratica è controllare non solo per un nextPageToken non vuoto, ma anche per un'vettorenon vuota inventoryItems .