使用者庫存

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

庫存API讓您可以存取與 Roblox 我的庫存頁面相同的大多數資訊。您可以檢查用戶是否擁有個人物品,並查閱玩家擁有的全部物品清單。

來自 庫存API 的回應包括以下類別的項目:

  • 服裝 (配件、底部、經典服裝、鞋子、上衣)
  • 購買和獎勵(徽章、通行證、已購買的地點、私人伺服器)
  • 虛擬人偶物品(虛擬人偶動畫、經典頭部、表情、臉部、頭髮、頭部)

在使用 庫存API 之前,您必須 生成API鑰匙配置OAuth 2 以獲得應用程App。這個頁面上的範例使用 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": ""
}

當在應用程App中實裝頁面時,最佳做法是檢查不僅非空的 nextPageToken ,還有非空的 inventoryItems 陣列。