创建和管理提交
使用 Microsoft Store 提交 API,针对你的或组织的合作伙伴中心帐户的应用、加载项和软件包外部测试版,以编程方式查询并创建提交。 如果你的帐户管理多个应用或加载项,并且想要自动执行并优化这些资源的提交过程,此 API 非常有用。 此 API 使用 Azure Active Directory (Azure AD) 验证来自应用或服务的调用。
以下步骤介绍了使用 Microsoft Store 提交 API 的端到端过程:
- 确保已完成所有先决条件。
- 在 Microsoft 应用商店提交 API 中调用方法之前, 请获取 Azure AD 访问令牌。 获取令牌后,可以在 60 分钟的令牌有效期内,使用该令牌调用“Microsoft Store 提交 API”。 该令牌到期后,可以重新生成一个。
- 调用 Microsoft 应用商店提交 API。
重要
如果你使用此 API 创建应用提交、程序包外部测试版或加载项,请务必仅使用此 API 对提交进行进一步更改,而不是在合作伙伴中心中进行这一操作。 如果使用合作伙伴中心来更改最初使用此 API 创建的提交,则无法再使用此 API 更改或完成该提交。 在某些情况下,在提交过程中无法继续进行时,提交可能会处于错误状态。 如果发生这种情况,你必须删除提交并创建新的提交。
重要
不能使用此 API 通过适用于企业的 Microsoft Store和适用于教育的 Microsoft Store发布批量购买的提交,也不能将 LOB 应用的提交直接发布到企业。 对于这两种方案,必须使用“在合作伙伴中心发布提交”。
注意
此 API 不能与使用强制应用更新和应用商店管理的易耗型加载项的应用或加载项一起使用。 如果将 Microsoft 应用商店提交 API 与使用其中一项功能的应用或加载项一起使用,API 将返回 409 错误代码。 在这种情况下,必须使用合作伙伴中心管理应用或加载项的提交。
步骤 1:完成使用 Microsoft Store 提交 API 的先决条件
在开始编写代码以调用 Microsoft 应用商店提交 API 之前,请确保已完成以下先决条件。
你(或你的组织)必须有一个 Azure AD 目录,并且必须对该目录拥有全局管理员权限。 如果你已使用 Microsoft 365 或 Microsoft 的其他业务服务,表示你已经具有 Azure AD 目录。 否则,你可以免费在合作伙伴中心中创建新的 Azure AD。
必须将某个 Azure AD 应用程序与你的合作伙伴中心帐户相关联,并获取租户 ID、客户端 ID 和密钥。 需要使用这些值来获取 Azure AD 访问令牌,调用“Microsoft Store 提交 API”时将会使用该令牌。
准备应用以与 Microsoft 应用商店提交 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 访问令牌时,都可以重复使用它们。
在合作伙伴中心,将组织的合作伙伴中心帐户与组织的 Azure AD 目录相关联。
接下来,在合作伙伴中心的“用户”页的“帐户设置”部分添加 Azure AD 应用程序,该应用程序代表你要用来访问合作伙伴中心帐户提交内容的应用或服务。 确保为此应用程序分配“管理者”角色。 如果你的 Azure AD 目录中尚不包含该应用程序,可以在合作伙伴中心创建新的 Azure AD 应用程序。
返回到“用户”页,单击 Azure AD 应用程序的名称转到“应用程序设置”,然后复制“租户 ID”和“客户端 ID”值。
单击“添加新密钥”。 在下一个屏幕上,复制“密钥”值。 离开此页后,不再可以访问此信息。 有关详细信息,请参阅管理 Azure AD 应用程序的密钥。
步骤 2:获取 Azure AD 访问令牌
在调用 Microsoft 应用商店提交 API 中的任何方法之前,必须先获取传递到 API 中每个方法的授权 标头的 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_id 和 client_secret 参数,请指定在上一部分中从合作伙伴中心中为应用程序检索的租户 ID、客户端 ID 和密钥。 对于 resource 参数,必须指定 https://manage.devcenter.microsoft.com
。
访问令牌过期后,可以通过再次进行相同的 HTTP 调用来提取一个新令牌。
有关演示如何使用 C#、Java 或 Python 代码获取访问令牌的示例,请参阅Microsoft应用商店提交 API 代码示例。
第 3 步:使用Microsoft Store 提交 API
获得 Azure AD 访问令牌后,可以在 Microsoft 应用商店提交 API 中调用方法。 API 包括许多分组到应用、加载项和软件包外部测试版方案中的方法。 若要创建或更新提交,通常按特定顺序调用Microsoft应用商店提交 API 中的多个方法。 有关各场景中每个方法的语法信息,请参阅下表中的文章:
注意
获取访问令牌后,可以在令牌过期之前在 Microsoft 应用商店提交 API 中调用方法 60 分钟。
场景 | 说明 |
---|---|
应用 | 检索已注册到合作伙伴中心帐户的所有应用的数据,然后创建这些应用的提交。 有关这些方法的详细信息,请参阅以下文章: |
加载项 | 获取、创建或删除应用的加载项,然后获取、创建或删除加载项的提交。 有关这些方法的详细信息,请参阅以下文章: |
软件包外部测试版 | 获取、创建或删除应用的软件包外部测试版,然后获取、创建或删除软件包外部测试版的提交。 有关这些方法的详细信息,请参阅以下文章: |
代码示例
以下文章提供了详细的代码示例,演示如何以多种不同的编程语言使用 Microsoft 应用商店提交 API:
- C# 示例:应用、加载项和外部测试版的提交
- C# 示例:使用游戏选项和预告片的应用提交
- Java 示例:应用、加载项和外部测试版的提交
- Java 示例:使用游戏选项和预告片的应用提交
- Python 示例:应用、加载项和外部测试版的提交
- Python 示例:使用游戏选项和预告片的应用提交
StoreBroker PowerShell 模块
除了直接调用 Microsoft Store 提交 API 的方式外,我们还提供在该 API 之上实现命令行界面的开源 PowerShell 模块。 此模块称为 StoreBroker。 你可以使用此模块从命令行管理你的应用、外部测试版和加载项提交,而不是通过直接调用 Microsoft Store 提交 API,或者你可以浏览源以查看更多有关如何调用此 API 的示例。 在 Microsoft 内,StoreBroker 模块作为将许多第一方应用程序提交到 Microsoft Store 的主要方式被频繁使用。
有关详细信息,请参阅我们 GitHub 上的 StoreBroker 页面。
故障排除
问题 | 解决方案 |
---|---|
从 PowerShell 调用Microsoft存储提交 API 后,如果使用 ConvertFrom-Json cmdlet 将其从 JSON 格式转换为 PowerShell 对象,然后使用 ConvertTo-Json cmdlet 重新转换为 JSON 格式,则 API 的响应数据将损坏。 | 默认情况下,ConvertTo-Json cmdlet 的 -Depth 参数设置为 2 个级别的对象,对于Microsoft应用商店提交 API 返回的大多数 JSON 对象来说,这太浅了。 调用 ConvertTo-Json cmdlet 时,请将 -Depth 参数设置为较大的数字,例如 20。 |
其他帮助
如果你对 Microsoft Store 提交 API 有疑问,或需要获取有关使用此 API 来管理提交的帮助,请访问支持页面并请求帮助: