ユーザーのインベントリ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Inventory API は、Roblox の My Inventory ページと同じ情報にアクセスできます。ユーザーが個々のアイテムを所有しているかどうかをチェックし、プレイヤーが所有するアイテムの完全なリストを取得できます。

インベントリ API からのレポートには、次のカテゴリからのアイテムが含まれています:

  • 服装 (アクセサリー、ボトム、クラシック衣装、シューズ、トップス)
  • 購入と報酬 (バッジ、パス、購入した場所、プライベートサーバー)
  • アバターアイテム (アバターアニメーション、クラシックヘッド、エモート、顔、ヘア、頭)

インベントリ API を使う前に、あなたは API キーを生成する または OAuth 2 を構成する 必要があります。このページの例は、API キーを使用しています。

アイテム所有者をチェック中

ユーザーが特定のアイテムを所有しているかどうかをチェックしたい場合は、filter パラメータを使用して、コマを区切ったリストの 1つまたは複数の ID をチェックします。このコードサンプルは 3つのアセット 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);
});

次のレポートにより、ユーザーが 3つのアイテムの 1 つを所有していることが示されています:


{
"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 へのほとんどの呼び出しは特定の権限は必要ありませんが、複数のフィルターはインベントリ読み取り権限が必要になります。詳細は、フィルタを参照してください。

結果を paginate

レポートに nextPageToken の値が含まれている場合は、次のリクエストの pageToken パラメータにその値を使用します。詳細は、「ページナビゲーション」を参照してください。

結果の数が maxPageSize (たとえ、50個の結果があり、25個の maxPageSize がある場合)で分割可能な状況に置くと、あなたのレポートに nextPageToken の値が含まれている場合がありますが、そのトークンを使用してリクエストすると、結果が表示されません:


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

アプリでページを実装するとき、ベストプラクティスは、空の nextPageToken だけをチェックすることではなく、空の inventoryItems 配列をチェックすることです。