创建和管理提交

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

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

  1. 确保已完成所有先决条件
  2. 在 Microsoft Store 提交 API 中调用某个方法之前,请先获取 Azure AD 访问令牌。 获取令牌后,可以在 60 分钟的令牌有效期内,使用该令牌调用“Microsoft Store 提交 API”。 该令牌到期后,可以重新生成一个。
  3. 调用 Microsoft Store 提交 API

重要

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

重要

你无法使用此 API 来直接向企业发布通过适用于企业的 Microsoft Store 和适用于教育的 Microsoft Store 批量购买的提交或发布 LOB 应用的提交。 对于这两种方案,必须使用“在合作伙伴中心发布提交”。

注意

此 API 不能用于使用必需的应用更新和 Microsoft Store 管理的可消费加载项的应用或加载项。 如果将 Microsoft Store 提交 API 用于使用以下功能之一的应用或加载项,该 API 会返回错误代码 409。 在这种情况下,必须使用合作伙伴中心管理应用或加载项的提交。

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

在开始编写调用 Microsoft Store 提交 API 的代码之前,确保已满足以下先决条件。

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

  • 必须将某个 Azure AD 应用程序与你的合作伙伴中心帐户相关联,并获取租户 ID、客户端 ID 和密钥。 需要使用这些值来获取 Azure AD 访问令牌,调用“Microsoft Store 提交 API”时将会使用该令牌。

  • 使用 Microsoft Store 提交 API 对应用进行准备:

    • 如果合作伙伴中心中尚不存在你的应用,需要通过在合作伙伴中心保留其名称来创建你的应用。 不能使用 Microsoft Store 提交 API 在合作伙伴中心创建应用;需要在合作伙伴中心进行创建,然后才能使用 API 访问应用,并以编程方式为其创建提交。 不过,可以使用该 API 以编程方式创建加载项和软件包外部测试版,然后再为它们创建提交。

    • 在可以使用此 API 为给定应用创建提交之前,首先必须在合作伙伴中心为应用创建一个提交,其中包括回答年龄分级调查表的内容。 完成此操作后,才可以使用该 API 为此应用以编程方式创建新的提交。 无需创建加载项提交或软件包外部测试版提交,即可将该 API 用于这些类型的提交。

    • 如果你要创建或更新应用提交并需要包括应用包,请事先准备应用包

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

    • 如果你要创建或更新加载项提交并需要包括图标,请事先准备图标

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

必须先将 Azure AD 应用程序与你的合作伙伴中心帐户相关联、检索该应用程序的租户 ID 和客户端 ID,然后生成密钥,此后才能使用 Microsoft Store 提交 API。 Azure AD 应用程序是指你想要从中调用 Microsoft Store 提交 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 中调用任何方法之前,首先必须获取将传递给该 API 中每个方法的 Authorization 标头的 Azure AD 访问令牌。 获取访问令牌后,你有 60 分钟的时间来使用它,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 和密钥。 对于 resource 参数,必须指定 https://manage.devcenter.microsoft.com

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

对于演示如何使用 C#、Java 或 Python 代码获取访问令牌的示例,请参阅 Microsoft Store 提交 API 代码示例

步骤 3:使用“Microsoft Store 提交 API”

获取 Azure AD 访问令牌后,可以在 Microsoft Store 提交 API 中调用方法。 该 API 中包含的许多方法按照所适用的应用、加载项和软件包外部测试版方案进行分组。 若要创建或更新提交,一般需在 Microsoft Store 提交 API 中按特定顺序调用多个方法。 有关每个方案和每个方法的语法的信息,请参阅下表中的文章。

注意

获取访问令牌后,在令牌到期前,你有 60 分钟时间可以调用 Microsoft Store 提交 API 中的方法。

场景 说明
“应用” 检索已注册到合作伙伴中心帐户的所有应用的数据,然后创建这些应用的提交。 有关这些方法的详细信息,请参阅以下文章:
外接程序 获取、创建或删除应用的加载项,然后获取、创建或删除这些加载项的提交。 有关这些方法的详细信息,请参阅以下文章:
软件包外部测试版 获取、创建或删除应用的软件包外部测试版,然后获取、创建或删除这些软件包外部测试版的提交。 有关这些方法的详细信息,请参阅以下文章:

代码示例

下面的文章提供详细的代码示例,演示如何以不同的多种编程语言使用 Microsoft Store 提交 API。

StoreBroker PowerShell 模块

除了直接调用 Microsoft Store 提交 API 的方式外,我们还提供在该 API 之上实现命令行界面的开源 PowerShell 模块。 此模块称为 StoreBroker。 你可以使用此模块从命令行管理你的应用、外部测试版和加载项提交,而不是通过直接调用 Microsoft Store 提交 API,或者你可以浏览源以查看更多有关如何调用此 API 的示例。 在 Microsoft 内,StoreBroker 模块作为将许多第一方应用程序提交到 Microsoft Store 的主要方式被频繁使用。

有关详细信息,请参阅我们 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 Store 提交 API 有疑问或需要使用此 API 管理你的提交的帮助,请使用以下资源:

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