Aplikacja Inwentarz API pozwala uzyskać dostęp do większości tych samych informacji, co strona Roblox Mój ekwipunek .Możesz sprawdzić, czy użytkownik posiada pojedyncze przedmioty i odzyskać pełną listę przedmiotów, które posiada gracz.
Odpowiedzi z API eksportu zasobów zawierają przedmioty z następujących kategorii:
- Odzież (akcesoria, spodnie, klasyczna ubranie, buty, topy)
- Zakupy i nagrody (odznaki, przepustki, zakupione miejsca, prywatne serwery)
- Przedmioty awatara (animacje awatara, klasyczne głowy, emotki, twarze, włosy, głowy)
Zanim użyjesz API Inventory, musisz wygenerować klucz API lub skonfigurować OAuth 2 dla swojej aplikacja.Przykłady na tej stronie używają kluczy API.
Sprawdź własność przedmiotu
Jeśli chcesz sprawdzić, czy użytkownik posiada określony przedmiot (na przykład ograniczony, odznakę, przepustkalub prywatny serwer), użyj parametru filter, aby sprawdzić listę oddzieloną przecinkami jednego lub więcej identyfikatorów.Ten przykład kodu sprawdza trzy ID zasobów:
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);
});
Następująca odpowiedź wskazuje, że użytkownik posiada jeden z trzech przedmiotów:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Filtruj przedmioty
Jeśli chcesz wyświetlić, na przykład, tylko przedmioty kolekcjonerskie, które posiada użytkownik, użyj tego samego kodu, co powyżej, tylko z innym parametrem filter.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Miksuj i dopasuj filtry za pomocą oddzielonej przecinkami listy. Oto kilka przykładów:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
Większość wezwań do API nie wymaga żadnych szczególnych uprawnień, ale kilka filtrów wymaga uprawnień do odczytu zapasów.Aby uzyskać więcej informacji, zobacz Filtracja.
Paginuj wyniki
Jeśli odpowiedź zawiera wartość dla nextPageToken, użyj tej wartości w parametrze pageToken następnej prośby, aby odzyskać następną stronę.Aby uzyskać więcej informacji, zobacz Paginacja.
Jeśli liczba wyników jest dzielna przez maxPageSize (na przykład masz 50 wyników i maxPageSize 25), możesz napotkać sytuację, w której odpowiedź zawiera wartość dla nextPageToken, ale żądanie za pomocą tego tokenu nie zwraca wyników:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Podczas wdrażania paginacji w swojej aplikacjanajlepszą praktyką jest sprawdzenie nie tylko dla niepróżni nextPageToken , ale także dla niepróżni inventoryItems matrycy.