用户库存

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Inventory API 让您访问大部分与 Roblox 我的库存 页面相同的信息。您可以检查用户是否拥有单个物品,并检索玩家拥有的物品完整列表。

来自 Inventory API 的响应包括以下类别的物品:

  • 服装(配饰、裤子、经典服装、鞋子、上衣)
  • 购买和奖励(徽章、通行证、购买的地点、私人服务器)
  • 角色物品(角色动画、经典头像、表情、面孔、头发、头部)

在使用 Inventory API 之前,您必须 生成 API 密钥配置 OAuth 2 以供您的应用使用。本页面中的示例使用 API 密钥。

检查物品所有权

如果您想检查用户是否拥有特定物品(例如,限量品、徽章、通行证或私人服务器),请使用 filter 参数检查一个或多个 ID 的以逗号分隔的列表。以下代码示例检查三个资产 ID:


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

以下响应表示用户拥有三件物品中的一件:


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

过滤物品

如果您想显示,例如,用户拥有的收藏品,请使用与上述相同的代码,只需不同的 filter 参数。


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

使用分号分隔的列表混合和匹配过滤器。以下是一些示例:


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

大多数对 API 的调用不需要特定的权限,但某些过滤器需要库存读取权限。有关更多信息,请参见 过滤

分页结果

如果响应包含 nextPageToken 的值,请在随后的请求中使用该值作为 pageToken 参数以检索下一页。有关更多信息,请参见 分页

如果结果数量可以被 maxPageSize 整除(例如,您有 50 个结果,maxPageSize 为 25),您可能会遇到响应包含 nextPageToken 的值,但使用该令牌的请求不返回任何结果的情况:


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

在您的应用中实现分页时,最佳实践是检查不仅仅是非空的 nextPageToken,还要检查非空的 inventoryItems 数组。

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。