L'API Inventario ti consente di accedere alla maggior parte delle stesse informazioni della pagina Il mio inventario di Roblox. Puoi verificare se un utente possiede singoli oggetti e recuperare l'elenco completo degli oggetti di cui un giocatore è in possesso.
Le risposte dell'API Inventario includono oggetti delle seguenti categorie:
- Abbigliamento (accessori, pantaloni, abbigliamento classico, scarpe, magliette)
- Acquisti e premi (distintivi, pass, luoghi 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 app. Gli esempi in questa pagina utilizzano chiavi API.
Verifica della proprietà dell'oggetto
Se desideri verificare se un utente possiede un oggetto particolare (ad esempio, un oggetto limitato, un distintivo, un pass o un server privato), utilizza il parametro filter per verificare un elenco separato da virgole di uno o più ID. Questo esempio di codice verifica tre ID di asset:
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": ""
}
Filtra oggetti
Se desideri visualizzare, ad esempio, solo i collezionabili che un utente possiede, utilizza lo stesso codice di sopra, ma con un diverso parametro filter.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Mescola e abbina i filtri utilizzando un elenco separato da punto e virgola. 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 permessi specifici, ma diversi filtri richiedono permessi di lettura dell'inventario. Per ulteriori informazioni, vedere Filtraggio.
Imposta la paginazione dei risultati
Se una risposta include un valore per nextPageToken, utilizza quel valore nel parametro pageToken della richiesta successiva per recuperare la pagina successiva. Per ulteriori informazioni, vedere Paginazione.
Se il numero di risultati è divisibile per maxPageSize (ad esempio, hai 50 risultati e un maxPageSize di 25), potresti incontrare 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 implementi la paginazione nella tua app, la prassi migliore è controllare non solo per un nextPageToken non vuoto, ma anche per un array inventoryItems non vuoto.