사용자 인벤토리

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

인벤토리 API 는 Roblox의 내 인벤토리 페이지와 대부분 동일한 정보에 액세스할 수 있습니다.사용자가 개별 항목을 소유하고 있는지 확인하고 플레이어가 소유하는 전체 목록의 항목을 검색할 수 있습니다.

인벤토리 API의 응답에는 다음 카테고리의 항목이 포함됩니다: Inventory 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_PANTS
filter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999
filter=gamePasses=true;badges=true

API에 대한 대부분의 호출에는 특정 권한이 필요하지 않지만 여러 필터에는 인벤토리 읽기 권한이 필요합니다.자세한 내용은 필터링을 참조하십시오.

페이지네이트 결과

응답에 nextPageToken 값이 포함되어 있으면 다음 요청의 pageToken 매개변수에서 해당 값을 사용하여 다음 페이지를 검색합니다.자세한 내용은 페이지네이션을 참조하십시오.

결과 수가 분할 가능한 (예를 들어, 50개의 결과와 25개의 가 있는 경우)에서는, 응답에 에 대한 값이 포함되지만, 해당 토큰을 사용하는 요청에서 결과가 반환되지 않는 상황을 경험할 수 있습니다:


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

앱에서 페이지네이션을 구현할 때 최선의 방법은 비어 있지 않은 nextPageToken 배열뿐만 아니라 비어 있지 않은 inventoryItems 배열도 확인하는 것입니다.