Kho hàng của người dùng

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

API Kho hàng cho phép bạn truy cập hầu hết các thông tin tương tự như trang Roblox Hồ sơ của tôi .Bạn có thể kiểm tra xem người dùng có sở hữu các vật phẩm riêng lẻ hay không và lấy danh sách đầy đủ các vật phẩm mà một người chơi sở hữu.

Các phản hồi từ API Kho hàng bao gồm các mục từ các danh mục sau:

  • Quần áo (phụ kiện, trạng phục, áo cổ điển, giày, áo thun)
  • Mua hàng và phần thưởng (huy hiệu, vé, nơi đã mua, máy chủ riêng)
  • Vật phẩm avatar (hoạt hình avatar, đầu cổ điển, biểu cảm, khuôn mặt, tóc, đầu)

Trước khi sử dụng API Kho hàng, bạn phải tạo một chìa khóa API hoặc cài đặt OAuth 2 cho ứng dụng của bạn.Ví dụ trên trang này sử dụng chìa khóa API.

Kiểm tra sở hữu vật phẩm

Nếu bạn muốn kiểm tra xem người dùng có sở hữu một vật phẩm cụ thể (ví dụ, giới hạn, huy hiệu, thẻ, hoặc máy chủ riêng tư) không, hãy sử dụng tham số filter để kiểm tra cho một danh sách phân tách bằng dấu phẩy của một hoặc nhiều ID.Ví dụ mã này kiểm tra ba ID tài sản:


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);
});

Phản hồi sau đây cho thấy người dùng sở hữu một trong ba mục:


{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}

Lọc các mục

Nếu bạn muốn hiển thị, ví dụ, chỉ những món đồ sưu tầm mà một người dùng sở hữu, hãy sử dụng cùng một mã như trên, chỉ với một tham số khác filter.


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

Trộn và phối lọc bằng một danh sách chia cách bằng dấu phân cách. Dưới đây là một vài ví dụ:


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

Hầu hết các cuộc gọi đến API không yêu cầu bất kỳ quyền cụ thể nào, nhưng một số bộ lọc yêu cầu quyền đọc kho hàng.Để biết thêm thông tin, xem Lọc.

Xếp kết quả Paginate

Nếu một phản hồi bao gồm một giá trị cho nextPageToken , hãy sử dụng giá trị đó trong tham số pageToken của yêu cầu tiếp theo để lấy trang tiếp theo.Để biết thêm thông tin, xem Trang trích dẫn .

Nếu số kết quả có thể chia cho maxPageSize ( ví dụ, bạn có 50 kết quả và một maxPageSize của 25), bạn có thể gặp tình huống trong đó phản hồi của bạn bao gồm một giá trị cho nextPageToken , nhưng yêu cầu sử dụng token đó không trả kết quả:


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

Khi triển khai trang trí trong ứng dụng của bạn, tốt nhất là kiểm tra không chỉ cho một trang trí không trống nextPageToken , mà còn cho một trang trí không trống inventoryItems array.