Envanter API'si, Roblox'un Envanter Sayfası ile aynı bilgilere erişmenizi sağlar. Bir kullanıcının bireysel öğeleri var olup olmadığını kontrol edebilir ve bir oyuncunun sahip olduğu tüm öğeleri alabilirsiniz.
Envanter API'sinden gelen yanıtlar Envanter API'sinden gelen yanıtlar kategorilerinden gelen öğeleri içerir:
- Giyim (ayakkabılar, altızar, klasik kıyafet, ayakkabılar, üstler)
- Satın alma ve ödüller (başarımlar, biletler, satın alınan yerler, özel sunucular)
- Avatar öğeleri (avatar animasyonları, klasik kafalar, emotes, yüzler, saçlar)
Envanter API'sini kullanmadan önce, bir API anahtarı oluşturmalısınız veya uygulamanız için OAuth 2'yi yapılandırmalısınız. Bu sayfadaki örnekler API anahtarlarını kullanır.
Eşyayı Kiminin Kontrolü
Bir kullanıcının belirli bir öğeye sahip olup olmadığını (örneğin, sınırlı, rozet, bilet veya özel sunucu) kontrol etmek istiyorsanız, filter parametresini kullanarak bir koma ayrımı listesi için birkaç ID'yi kontrol edin. Bu kod örneği üç varlık ID'si için kontrol eder:
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);
});
Aşağıdaki yanıt, kullanıcının üç öğiden birine sahip olduğunu gösterir:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Eşyaları Filtreleme
Örneğin sadece bir kullunun sahip olduğu koleksiyonları göstermek istiyorsanız, aynı kodu kullanın, sadece farklı bir filter parametresiyle.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Semikolon ayrı listeyi kullanarak filtreleri karıştırın ve eşleştirin. İşte birkaç örnek:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
API'ye olan çoğu çağrıya gerekli herhangi bir özel izin yoktur, ancak birkaç filtre Envanter okuma izinleri gerektirir. For more information, see Filtreleme .
Sonuçları Öde
Bir yanıt nextPageToken için bir değer içeriyorsa, bunu önbir sonraki isteğin pageToken parçasında alın. For more information, see Pagination.
Sonuç sayısı maxPageSize (örneğin, 50 sonuçunuz var ve 25'inizin ortalaması) durumunda, yanıtınızın bir maxPageSize değeri içereceği bir durumla karşılaşabilirsiniz, ancak bir nextPageToken kullanarak isteğinizin hiçbir sonucu dönmez:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Uygulamanızda sayılama uygulama, en iyi pratik sayılama dışında bir nextPageToken ile değil, ayrıca bir inventoryItems matrisi ile de kontrol etmektir.