Skip to main content
publisherQuery를 사용하면 XBOX Game Pass 구독 상태를 포함하여 사용자의 제품 및 자격을 자체 서비스에서 쿼리할 수 있습니다. 사용자당 시간 창을 기준으로 하는 호출 속도 제한을 피하기 위해 서비스에서 사용자 구매를 정기적으로 폴링하지 않아야 합니다. 현재 제한은 동일한 사용자에 대해 5분 창 내에 100개의 쿼리 요청입니다. 속도 제한을 트리거하면 다음 요청을 수행할 수 있는 시점에 대한 정보와 함께 429 HTTP 응답이 발생합니다. 결과에는 서비스가 대신 호출하고 있는 사용자 계정이 직접 소유하거나 자격이 있는 제품만 포함됩니다. 클라이언트에 표시될 수 있는 공유 자격은 반환되지 않습니다. 게임을 위한 제품 공유 모델을 참조하세요. 사용자의 Game Pass 구독 상태 쿼리에 대한 자세한 내용은 서비스에서 XBOX Game Pass 구독 액세스 감지를 참조하세요.
publisherQuery는 파트너 서비스의 호출만 지원합니다.
클라이언트 앱 또는 게임은 이 서비스를 직접 호출할 수 없습니다.

publisherQuery(Collections Query v9)의 업데이트 및 개선 사항

publisherQuery는 최신 Collections Query API(v9)입니다. b2bLicensePreview(v8)에서 마이그레이션하는 경우 이 섹션에서 동작 차이점을 검토하세요. publisherQuery는 b2bLicensePreview에 비해 다음과 같은 변경 사항과 개선 사항이 있습니다.
  • 사용자의 XBOX Game Pass 구독 상태를 쿼리할 수 있는 기능
  • 반환할 미리 정의된 제품 목록이 필요합니다. 모범 사례이지만 v8 b2bLicensePreview에서는 필수가 아니었습니다. 이 모범 사례를 따르지 않은 타이틀은 종종 출시 후 쿼리 매개 변수를 기반으로 하는 콘텐츠의 큰 범위로 인해 요청이 시간 초과되는 문제를 겪었습니다. 이는 게임의 서비스가 쿼리 요청 내에서 원하는 ProductId를 지정하도록 업데이트될 때까지 사용자가 게임 내 크레딧을 얻지 못하게 했습니다.
  • 사용되지 않거나 불필요한 값을 제거하도록 응답 데이터 필드를 간소화했습니다.
  • 개발자 피드백을 기반으로 요청 매개 변수를 간소화했습니다.
요청 본문에서 제거됨:
  • Market - publisherQuery에서 모든 요청은 모든 지역에 대한 컨텍스트를 가집니다.
  • ExpandSatisfyingItems - publisherQuery에서 모든 결과는 만족시키는 자격을 확장합니다.
  • EntitlementsFilter - 쿼리의 미리 정의된 productIds 목록이 필요하기 때문에 사용되지 않습니다.
publisherQuery는 LegacyProductIds(더 이상 사용되지 않는 XBOX Developer Portal에서 생성되어 XBOX Inventory 서비스의 ProductId로 사용된 ProductIds)를 지원하지 않습니다.
XBOX Inventory에서 서비스를 마이그레이션하는 경우 자체 서비스에서 StoreId(Collections의 ProductId 값)를 일치하는 LegacyProductId에 내부적으로 매핑해야 합니다. 그렇지 않으면 StoreId와 LegacyProductIds를 모두 반환하는 v8 b2bLicensePreview를 볼 수 있습니다.
자세한 내용은 관련 문서 필요에 맞는 올바른 Collections 쿼리 API 선택을 참조하세요.

필수 구성 요소

서비스 간 API의 필수 구성 요소를 검토하세요. 이 API는 Microsoft Entra ID 및 위임된 인증 X-token 인증 유형을 모두 지원합니다. 파트너 센터에서 제품 구성이 게시되지 않으면 호출은 성공하지만 결과가 반환되지 않을 수 있습니다.

요청

요청 구문

요청 헤더

요청 본문

ProductSkuId 개체에는 다음 매개 변수가 포함됩니다.

요청 예제

v9 publisherQuery API는 요청당 최대 100개의 productSkuIds를 지원합니다. productSkuIds에 100개보다 많은 productIds를 제공하면 API가 HTTP 400 오류를 반환합니다.
기본 maxPageSize는 100이지만, 예제에서는 나머지 항목을 요청하는 것을 보여주기 위해 더 낮게 설정되어 있습니다.

응답

응답 본문

PublisherQueryItemContractV9 개체에는 다음 매개 변수가 포함됩니다. TrialInformation 개체에는 다음 표에 나와 있는 매개 변수가 포함됩니다.

제품 유형 값 및 의미

제품 상태 값 및 의미

제품 acquisitionType 값 및 의미

satisfiedByProductIds 필드로 만족된 자격의 결과 이해

satisfiedByProductIds 배열이 비어 있으면 사용자는 직접 구매를 통해 항목에 대한 직접 자격을 갖습니다. 그렇지 않고 satisfiedByProductIds 배열에 하나 이상의 ProductId가 있는 경우, 항목은 해당 제품(번들, 구독 등)에서 사용자에게 자격이 부여됩니다. 사용자가 항목에 대해 직접 자격과 만족시키는 자격을 모두 갖는 경우, 요청의 excludeDuplicatesTrue이면 직접 자격이 우선하며 satisfiedByProductIds는 비어 있습니다.

응답 예제

연속 토큰으로 나머지 결과 요청

쿼리에 단일 응답으로 반환할 수 있는 것보다 더 많은 결과가 있는 경우(maxPageSize로 제어됨), 초기 쿼리 응답에 continuationToken이 포함됩니다. 그런 다음 이전 요청 본문의 복사본에 연속 토큰을 추가하여 후속 요청에서 이 continuationToken을 사용할 수 있습니다. 연속 요청 예제:
excludeDuplicates 플래그를 지정하더라도, 연속 토큰을 사용할 때는 상태가 다른 자격 항목을 얻을 수 있습니다. 따라서 중복 항목과 상태가 Active가 아닌 항목이 있는지 결과를 확인하세요.

참고 항목

서비스에서 제품 관리 Microsoft Store API로 서비스 인증 서비스에서 소모품 제품 관리
마지막 수정일 2026년 8월 24일