创建和管理提交

使用 Microsoft Store 提交 API 以编程方式查询和创建您的或您组织的合作伙伴中心帐户的应用、加载项及软件包试用版提交。 如果帐户管理许多应用或加载项,并且想要自动执行和优化这些资产的提交过程,则此 API 非常有用。 此 API 使用 Azure Active Directory(Azure AD)对来自应用或服务的调用进行身份验证。

以下步骤介绍了使用 Microsoft 应用商店提交 API 的端到端过程:

  1. 请确保已完成所有 先决条件
  2. 在 Microsoft 应用商店提交 API 中调用方法之前,获取 Azure AD 访问令牌。 获取令牌后,在令牌过期之前,在调用 Microsoft Store 提交 API 时,需要 60 分钟才能使用此令牌。 令牌过期后,可以生成新令牌。
  3. 调用 Microsoft 应用商店提交 API

重要

如果使用此 API 为应用、软件包外部测试版或加载项创建提交,请确保仅使用 API 而不是在合作伙伴中心对提交进行进一步更改。 如果使用合作伙伴中心更改最初使用 API 创建的提交,将无法再使用 API 更改或提交该提交。 在某些情况下,提交可能处于错误状态,无法继续提交过程。 如果发生这种情况,则必须删除提交并创建新提交。

重要

不能使用此 API 通过适用于企业的 Microsoft Store 和 Microsoft Store for Education 发布 批量购买的提交,也不能直接向企业发布 LOB 应用的提交。 对于这两种情况,您必须在合作伙伴中心发布提交。

注释

此 API 不能与使用强制应用更新和应用商店管理的易耗型加载项的应用或加载项一起使用。 如果将 Microsoft 应用商店提交 API 与使用其中一项功能的应用或加载项一起使用,API 将返回 409 错误代码。 在这种情况下,必须使用合作伙伴中心来管理应用或加载项的提交。

注释

不能将此 API 用于定价版本 2 上的应用或加载项。 如果定价和可用性页的“定价”部分“按市场查看价格”按钮,则产品在定价版本 2 上。 如果将 Microsoft Store 提交 API 与定价版本 2 上的应用或加载项一起使用,则 API 将返回定价部分的未知等级。 可以继续使用此 API 更新 定价和可用性以外的模块。

步骤 1:完成使用 Microsoft 应用商店提交 API 的先决条件

在开始编写代码以调用 Microsoft 应用商店提交 API 之前,请确保已完成以下先决条件。

  • 您(或您的组织)必须具有 Azure AD 目录,并且必须对该目录拥有 全局管理员 权限。 如果已从 Microsoft 使用 Microsoft 365 或其他业务服务,则已有 Azure AD 目录。 否则,可以在 合作伙伴中心创建新的 Azure AD ,无需额外付费。

  • 必须 将 Azure AD 应用程序与合作伙伴中心帐户相关联, 并获取租户 ID、客户端 ID 和密钥。 需要这些值才能获取 Azure AD 访问令牌,该令牌将在调用 Microsoft 应用商店提交 API 时使用。

  • 准备您的应用程序,以便与 Microsoft 商店提交 API 配合使用。

    • 如果你的应用尚不存在于合作伙伴中心,则必须通过在合作伙伴中心保留应用名称来 创建应用。 不能使用 Microsoft 应用商店提交 API 在合作伙伴中心创建应用;你必须在合作伙伴中心工作才能创建它,然后之后,可以使用 API 访问应用并以编程方式为其创建提交。 在为加载项和航班创建提交之前,可以使用 API 以编程方式创建加载项和航班。

    • 在使用此 API 为给定应用创建提交之前,必须先 为合作伙伴中心中的应用创建一个提交,包括回答 年龄分级 问卷。 执行此操作后,你将能够使用 API 以编程方式为此应用创建新提交。 在使用 API 处理这些类型的提交时,您无需创建加载项提交或软件包航班提交。

    • 如果您要创建或更新应用的提交,并且需要包括应用包,则准备应用包

    • 如果要创建或更新应用提交,并且需要包括应用商店一览的屏幕截图或 图像,请准备应用屏幕截图和图像

    • 如果要创建或更新加载项提交,并且需要包含图标,准备图标

如何将 Azure AD 应用程序与合作伙伴中心帐户相关联

在使用 Microsoft 应用商店提交 API 之前,必须将 Azure AD 应用程序与合作伙伴中心帐户相关联,检索应用程序的租户 ID 和客户端 ID 并生成密钥。 Azure AD 应用程序表示要从中调用 Microsoft 应用商店提交 API 的应用或服务。 需要租户 ID、客户端 ID 和密钥才能获取传递给 API 的 Azure AD 访问令牌。

注释

只需一次执行此任务。 拥有租户 ID、客户端 ID 和密钥后,可以随时重复使用它们,以创建新的 Azure AD 访问令牌。

  1. 在合作伙伴中心,将组织的合作伙伴中心帐户与组织的 Azure AD 目录相关联。

  2. 接下来,在合作伙伴中心的 帐户设置 部分中的“用户”页中,添加 Azure AD 应用程序,表示将用于访问合作伙伴中心帐户提交的应用或服务。 请确保为该应用分配 管理员 角色。 如果 Azure AD 目录中尚不存在该应用程序,可以在 合作伙伴中心创建新的 Azure AD 应用程序

  3. 返回到 用户 页面,单击你的 Azure AD 应用程序名称以进入应用程序设置,并抄写 租户 ID客户端 ID 值。

  4. 单击“添加新密钥。 在以下屏幕上,记下 密钥的 值。 离开此页面后,将无法再次访问此信息。 有关详细信息,请参阅 管理 Azure AD 应用程序的密钥

步骤 2:获取 Azure AD 访问令牌

在调用 Microsoft Store 提交 API 中的方法之前,必须先获取 Azure AD 访问令牌,并将其传递到 API 中每个方法的 Authorization header。 获取访问令牌后,在它到期前,你有 60 分钟的使用时间。 令牌过期后,可以刷新令牌,以便在对 API 的进一步调用中继续使用该令牌。

若要获取访问令牌,请按照 服务到服务调用中的说明使用客户端凭据 将 HTTP POST 发送到 https://login.microsoftonline.com/<tenant_id>/oauth2/token 终结点。 下面是一个示例请求。

POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8

grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://manage.devcenter.microsoft.com

对于 POST URI 中的 tenant_id 值,以及 client_idclient_secret 参数,请指定您在上一部分中从合作伙伴中心检索到的应用程序的租户 ID、客户端 ID 和密钥。 对于“资源”参数,必须指定 https://manage.devcenter.microsoft.com

访问令牌过期后,可以通过再次进行相同的 HTTP 调用来提取一个新令牌。

有关演示如何使用 C#、Java 或 Python 代码获取访问令牌的示例,请参阅Microsoft应用商店提交 API 代码示例

步骤 3:使用 Microsoft 应用商店提交 API

获得 Azure AD 访问令牌后,可以在 Microsoft 应用商店提交 API 中调用方法。 API 包括许多按照应用、加载项和包飞行场景划分的方法。 若要创建或更新提交,通常按特定顺序调用Microsoft应用商店提交 API 中的多个方法。 有关每个方案以及每个方法的语法的信息,请参阅下表中的文章。

注释

获取访问令牌后,可以在令牌过期之前在 Microsoft 应用商店提交 API 中调用方法 60 分钟。

情景 DESCRIPTION
应用程序 检索注册到您的合作伙伴中心帐户的所有应用程序的数据,并为应用程序创建提交记录。 有关这些方法的详细信息,请参阅以下文章:
插件 获取、创建或删除应用的加载项,然后获取、创建或删除这些加载项的提交。 有关这些方法的详细信息,请参阅以下文章:
套餐机票 获取、创建或删除应用程序的包飞行,然后获取、创建或删除这些包飞行的提交。 有关这些方法的详细信息,请参阅以下文章:

代码示例

以下文章提供了详细的代码示例,演示如何以多种不同的编程语言使用 Microsoft 应用商店提交 API:

StoreBroker PowerShell 模块

作为直接调用 Microsoft 应用商店提交 API 的替代方法,我们还提供一个开源 PowerShell 模块,该模块在 API 顶部实现命令行接口。 此模块名为 StoreBroker。 可以使用此模块从命令行管理应用程序、航班和加载项的提交,而不是直接调用 Microsoft Store 提交 API。您也可以查看源代码以了解如何调用此 API 的更多示例。 StoreBroker 模块在 Microsoft 中被主动用作许多第一方应用程序提交到应用商店的主要方式。

有关详细信息,请参阅 GitHub上的 StoreBroker 页。

故障排除

問题 决议
从 PowerShell 调用 Microsoft Store 提交 API 后,如果使用 ConvertFrom-Json cmdlet 将 API 的响应数据从 JSON 格式转换为 PowerShell 对象,然后使用 ConvertTo-Json cmdlet 转回到 JSON 格式,响应数据是损坏的。 默认情况下,ConvertTo-Json cmdlet 的 -Depth 参数设置为 2 个级别的对象,这对于 Microsoft Store 提交 API 返回的大多数 JSON 对象来说太浅。 调用 ConvertTo-Json cmdlet 时,请将 -Depth 参数设置为较大的数字,例如 20。

更多帮助

如果对 Microsoft 应用商店提交 API 有疑问,或者需要使用此 API 管理提交方面的帮助,请使用以下资源:

  • 在我们的 论坛上提出您的问题。
  • 请访问 我们的支持页面 ,并请求合作伙伴中心的辅助支持选项之一。 如果系统提示你选择问题类型和类别,请选择 应用提交和认证分别提交应用