庫存 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=*';
使用 semicolon 分開的列表來混合並匹配過濾器。這裡有一些範例:
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
大多數 API 呼叫不需要任何特定權限,但需要幾個過濾器才能讓儲存資料閱取權限。For more information, see 過濾 .
付款結果
如果回應包含 nextPageToken 的值,請在下一個要求中的 pageToken 參數中使用該值。為了獲取更多資訊,請參閱 頁面導航。
如果結果數是由 maxPageSize (例如,你有 50 個結果和 25 個 maxPageSize),你可以遇到一個情況,在你的回應包含 nextPageToken 的值,但要求使用該代幣返回沒有結果:
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
當在應用程App中實現頁面層級時,最佳做法是檢查不僅是否為非空 nextPageToken ,而且還要檢查非空 inventoryItems 陣列。