庫存 API 讓您訪問與 Roblox 我的庫存 頁面大致相同的大多數信息。您可以檢查用戶是否擁有單個物品,並檢索玩家擁有的所有物品的完整列表。
庫存 API 的響應包括以下類別的物品:
- 服裝(配飾、底部、經典服裝、鞋子、上部)
- 購買和獎勵(徽章、通行證、已購買的地點、私人伺服器)
- 角色物品(角色動畫、經典頭部、表情、面具、頭髮、頭部)
在使用 庫存 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_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=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 數組。