The API Inventaris memungkinkan Anda mengakses sebagian besar informasi yang sama dengan halaman Roblox Inventaris Saya .Anda dapat memeriksa apakah pengguna memiliki item individu dan mengambil daftar lengkap item yang dimiliki pemain.
Balasan dari API Inventaris termasuk item dari kategori berikut:
- Pakaian (aksesori, bawahan, pakaian klasik, sepatu, atasan)
- Pembelian dan hadiah (badge, pas, tempat yang dibeli, server pribadi)
- Item avatar (animasi avatar, kepala klasik, emote, wajah, rambut, kepala)
Sebelum menggunakan API Inventaris, Anda harus menghasilkan kunci API atau mengkonfigurasi OAuth 2 untuk aplikasi Anda.Contoh di halaman ini menggunakan kunci API.
Periksa kepemilikan item
Jika Anda ingin memeriksa apakah pengguna memiliki item tertentu (misalnya, terbatas, lencana, pas, atau server pribadi), gunakan parameter filter untuk memeriksa daftar terpisah koma dari satu atau lebih ID.Sampel 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": ""
}
Filter item
Jika Anda ingin menampilkan, misalnya, hanya koleksi yang dimiliki pengguna, gunakan kode yang sama seperti di atas, hanya dengan parameter yang berbeda filter.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Campur dan cocokkan filter menggunakan daftar terpisah dengan semikolon. Berikut adalah beberapa contoh:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
Kebanyakan panggilan ke API tidak memerlukan izin khusus, tetapi beberapa filter memerlukan izin baca inventaris.Untuk informasi lebih lanjut, lihat Filtering.
Paginasi hasil
Jika respons termasuk nilai untuk nextPageToken , gunakan nilai itu dalam parameter pageToken dari permintaan berikutnya untuk mengambil halaman berikutnya.Untuk informasi lebih lanjut, lihat Paginasi.
Jika jumlah hasil dapat dibagi dengan maxPageSize (misalnya, Anda memiliki 50 hasil dan maxPageSize dari 25), Anda dapat menemukan situasi di mana respons Anda termasuk nilai untuk nextPageToken , tetapi permintaan menggunakan token itu tidak mengembalikan hasil:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Saat menerapkan paginasi di aplikasi Anda, praktik terbaik adalah memeriksa bukan hanya untuk array non-kosong nextPageToken , tetapi juga untuk array non-kosong inventoryItems.