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 开发者门户生成并被 XBOX Inventory 服务用作 ProductId 的 ProductId)。
先决条件
请查看服务到服务 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,则该项目是从这些产品(捆绑包、订阅等)授权给用户的。
如果用户对项目同时具有直接授权和满足性授权,如果请求中的 excludeDuplicates 为 True,则直接授权将优先,satisfiedByProductIds 将为空。
响应示例
使用延续令牌请求其余结果
如果你的查询包含比单个响应可返回更多的结果(由 maxPageSize 控制),则初始查询响应中会包含 continuationToken。 然后,你可以在后续请求中通过将延续令牌添加到先前请求正文的副本中来使用此 continuationToken。 示例延续请求:即使你指定了 excludeDuplicates 标志,使用延续令牌时也可能获取状态不同的授权条目。因此,请验证结果是否存在重复条目以及它们的状态是否不是 Active。
