API Inventory memungkinkan Anda mengakses sebagian besar informasi yang sama seperti halaman Inventaris Saya di Roblox. Anda dapat memeriksa apakah seorang pengguna memiliki item individu dan mengambil daftar lengkap item yang dimiliki oleh seorang pemain.
Respons dari API Inventory mencakup item dari kategori berikut:
- Pakaian (aksesori, bawahan, pakaian klasik, sepatu, atasan)
- Pembelian dan hadiah (lencana, pass, tempat dibeli, server pribadi)
- Item avatar (animasi avatar, kepala klasik, emote, wajah, rambut, kepala)
Sebelum menggunakan API Inventory, Anda harus menghasilkan kunci API atau mengonfigurasi OAuth 2 untuk aplikasi Anda. Contoh pada halaman ini menggunakan kunci API.
Periksa kepemilikan item
Jika Anda ingin memeriksa apakah seorang pengguna memiliki item tertentu (misalnya, terbatas, lencana, pass, atau server pribadi), gunakan parameter filter untuk memeriksa daftar ID satu atau lebih yang dipisahkan dengan koma. Contoh kode ini memeriksa tiga ID aset:
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);
});
Respons berikut menunjukkan bahwa pengguna memiliki salah satu dari tiga item:
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Saring item
Jika Anda ingin menampilkan, misalnya, hanya koleksi yang dimiliki oleh pengguna, gunakan kode yang sama seperti di atas, hanya dengan parameter filter yang berbeda.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Campur dan cocokkan filter menggunakan daftar yang dipisahkan dengan titik koma. Berikut adalah beberapa contohnya:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
Sebagian besar panggilan ke API tidak memerlukan izin tertentu, tetapi beberapa filter memerlukan izin baca Inventaris. Untuk informasi lebih lanjut, lihat Penyaringan.
Halaman hasil
Jika respons menyertakan nilai untuk nextPageToken, gunakan nilai itu dalam parameter pageToken dari permintaan berikut untuk mengambil halaman berikutnya. Untuk informasi lebih lanjut, lihat Halaman.
Jika jumlah hasil dapat dibagi dengan maxPageSize (misalnya, Anda memiliki 50 hasil dan maxPageSize 25), Anda bisa menemui situasi di mana respons Anda menyertakan nilai untuk nextPageToken, tetapi permintaan yang menggunakan token itu tidak mengembalikan hasil:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Ketika menerapkan paging di aplikasi Anda, praktik terbaik adalah memeriksa tidak hanya untuk nextPageToken yang tidak kosong, tetapi juga untuk array inventoryItems yang tidak kosong.