Die Inventar-API ermöglicht es Ihnen, auf die meisten dieselben Informationen zuzugreifen, wie die Roblox My Inventory Seite. Sie können überprüfen, ob ein Benutzer einzelne Gegenstände besitzt und die vollständige Liste der Gegenstände, die ein Benutzer besitzt, abrufen.
Antworten von der Inventar-API enthalten Gegenstände aus den folgenden Kategorien:
- Kleidung (Zubehör, Unterwäsche, klassische Kleidung, Schuhe, Tops)
- Käufe und Belohnungen (Abzeichen, Pässe, gekaufte Plätze, private Server)
- Avatar-Items (Avatar-Animationen, klassische Köpfe, Emotes, Gesichter, Haare, Köpfe)
Before using the Inventar-API , you must einen API-Schlüssel generieren or konfigurieren Sie OAuth 2 for your App. The examples on this page use API-Schlüssel.
Item-Besitz überprüfen
Wenn Sie überprüfen möchten, ob ein Benutzer ein bestimmtes Item besitzt (z. B. ein begrenztes, Abzeichen, Pass oder privater Server), verwenden Sie den filter -Parameter, um nach einer Komma getrennten Liste von einer oder mehreren IDs zu suchen. Dieser Code-Beispiel überprüft drei Asset-IDs:
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);
});
Die folgende Antwort zeigt an, dass der Benutzer eines der drei Artikel besitzt:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Filtering-Elemente
Wenn Sie zum Beispiel nur die Sammlungen anzeigen möchten, die ein Benutzer besitzt, verwenden Sie den gleichen Code wie oben, nur mit einem anderen filter-Parameter.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Mischen und kombinieren Sie Filter mit einer semikolon-getrennten Liste. Hier sind einige Beispiele:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
Die meisten Anrufe zur API erfordern keine spezifischen Berechtigungen, aber mehrere Filter erfordern Inventar-Leserechte. Weitere Informationen finden Sie unter Filtern.
Ergebnisse paginieren
Wenn eine Antwort einen Wert für nextPageToken enthält, verwende diesen Wert in der pageToken-Parameter der nächsten Anfrage, um die nächste Seite zu erhalten. Weitere Informationen finden Sie unter Pagination.
Wenn die Anzahl der Ergebnisse durch maxPageSize (zum Beispiel haben Sie 50 Ergebnisse und ein maxPageSize von 25) aufgetreten ist, kann eine Situation auftreten, in der Ihre Antwort einen Wert für nextPageToken enthält, aber eine Anfrage, die diesen Token verwendet, keine Ergebnisse zurückgibt:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Wenn Sie die Pagination in Ihrer App implementieren, ist es am besten, nicht nur nach einem nicht leeren nextPageToken zu prüfen, sondern auch nach einer nicht leeren inventoryItemsArrayzu prüfen.