Inventarisasi API memungkinkan Anda mengakses sebagian besar informasi yang sama dengan halaman Inventaris Roblox saya . Anda dapat memeriksa apakah pengguna memiliki item tunggal dan mengambil daftar lengkap item yang dimiliki pemain.
Tanggapan dari Inventaris API mencakup item dari kategori berikut:
- Pakaian (aksesori, bawah, pakaian klasik, sepatu, atas)
- Pembelian dan hadiah (badge, kartu, tempat yang dibeli, server pribadi)
- Item avatar (animasi avatar, kepala klasik, emotes, wajah, rambut, kepala)
Sebelum menggunakan Inventaris API, Anda harus menghasilkan kunci API atau konfigurasi OAuth 2 untuk aplikasi Anda. Contoh di halaman ini menggunakan kunci API.
Memeriksa Keberadaan Item
Jika Anda ingin memeriksa apakah pengguna memiliki item tertentu (misalnya, item terbatas, lencana, pas, atau server pribadi), gunakan parameter filter untuk memeriksa daftar koma-terpisah dari satu atau lebih ID. Sammlah contoh kode ini untuk 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);
});
Jawaban 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": ""
}
Menghilangkan Item
Jika Anda ingin menampilkan, misalnya, hanya koleksi yang dimiliki pengguna, gunakan kode yang sama seperti di atas, hanya dengan parameter filter yang berbeda.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Gunakan filter dan pertandingan menggunakan daftar yang dipisahkan semikolon. Berikut adalah beberapa contoh:
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 khusus, tetapi beberapa filter memerlukan izin baca Inventaris. Untuk informasi lebih lanjut, lihat Filtering.
Menghasilkan Hasil
Jika jawaban mencakup nilai untuk nextPageToken, gunakan nilai itu dalam parameter pageToken panggilan permintaan berikutnya untuk mengambil halaman berikutnya. Untuk informasi lebih lanjut, lihat Pagination.
Jika jumlah hasil dibagi oleh maxPageSize (misalnya, Anda memiliki 50 hasil dan maxPageSize dari 25), Anda dapat menghadapi situasi di mana respons Anda mencakup nilai untuk nextPageToken , tetapi permintaan menggunakan token itu tidak menghasilkan hasil:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Saat menerapkan pagination di aplikasi Anda, praktik terbaik adalah memeriksa bukan hanya untuk nextPageToken , tetapi juga untuk inventoryItems array.