Benutzerinventare

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Die Inventar-API ermöglicht den Zugriff auf die meisten der gleichen Informationen wie die Roblox-Seite Mein Inventar .Du kannst überprüfen, ob ein Benutzer einzelne Artikel besitzt, und die vollständige Liste der Artikel, die ein Spieler besitzt, abrufen.

Antworten aus der Inventar-API enthalten Gegenstände aus den folgenden Kategorien:

  • Bekleidung (Accessoires, Unterteile, klassische Kleidung, Schuhe, Tops)
  • Käufe und Belohnungen (Abzeichen, Pässe, gekaufte Orte, private Server)
  • Avatar-Artikel (Avatar-Animationen, klassische Köpfe, Emotes, Gesichter, Haare, Köpfe)

Bevor du die Inventar-API verwendest, musst du einen API-Schlüssel generieren oder OAuth 2 konfigurieren für deine App.Die Beispiele auf dieser Seite verwenden API-Schlüssel.

Überprüfe die Artikelbesitzschaft

Wenn du überprüfen möchtest, ob ein Benutzer ein bestimmtes Element besitzt (z. B. ein begrenztes Abzeichen, einen Pass oder einen privaten Server), verwende den filter -Parameter, um eine kommaseparierte Liste von einer oder mehreren IDs zu überprüfen.Dieses Codebeispiel prüft nach 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": ""
}

Artikel filtern

Wenn du zum Beispiel nur die Sammlerstücke anzeigen möchtest, die ein Benutzer besitzt, verwende den gleichen Code wie oben, nur mit einem anderen filter -Parameter.


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

Mischen und passen Sie Filter mit einer getrennten Liste mit Semikolon an. Hier sind einige Beispiele:


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

Die meisten Anrufe bei der API erfordern keine bestimmten Berechtigungen, aber mehrere Filter erfordern Leseberechtigungen für Inventar.Für weitere Informationen, siehe Filtern.

Ergebnisse paginieren

Wenn eine Antwort einen Wert für nextPageToken enthält, verwende diesen Wert im pageToken -Parameter der nachfolgenden Anfrage, um die nächste Seite abzurufen.Für weitere Informationen, siehe Seitenlayout.

Wenn die Anzahl der Ergebnisse durch maxPageSize teilbar ist (zum Beispiel hast du 50 Ergebnisse und einen maxPageSize von 25), kannst du eine Situation erleben, in der deine Antwort einen Wert für nextPageToken enthält, aber eine Anfrage mit diesem Token keine Ergebnisse zurückgibt:


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

Wenn du die Seitenzusammenstellung in deiner App implementierst, ist die beste Praxis, nicht nur nach einem nicht leeren nextPageToken zu suchen, sondern auch nach einem nicht leeren inventoryItems Array.