Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Google Play Developer API

Google Play Developer API 是一种基于 REST 的网络服务,利用这种服务,您可以执行应用发布和管理任务。您可以使用此 API 将您的发布操作与版本管理流程集成。

并不是所有的开发者都需要使用这些 API - 在大多数情况下,您需要继续使用 Google Play 管理中心来直接管理应用。不过,如果您有大量 APK 需要管理,或者需要跟踪用户购买和订阅,则可能会发现此 API 非常有用。

使用 Google Play Developer API,您可以自动执行各种应用管理任务,包括:

  • 上传和发布应用的新版本
  • 修改应用的 Google Play 商店商品详情,包括已本地化的文字和图形
  • 管理您的应用内商品目录、商品购买状态和应用订阅

利用 Google Play Developer API,您可以集中精力设计和开发应用,同时减少版本管理的时间和工作,即使您将应用推向新市场也能如此。

Google Play Developer API 包括两个组件:

Publishing API

您可以通过 Google Play Developer Publishing API 自动执行与应用分发操作相关的常态任务,其中包括向开发者提供与 Play 管理中心所提供的功能类似的功能,例如:

  • 上传应用的新版本
  • 通过将 APK 分配至各个轨道(Alpha 版、Beta 版、分阶段发布版本或正式版)来发布应用
  • 创建和修改 Google Play 商店中的商品详情,包括已本地化的文字和图形与多设备屏幕截图

这些任务使用修改功能执行,并采用事务型方式进行更改 - 将多项更改绑定到一个草稿修改中,然后一次性提交所有更改。(只有提交修改后,这些更改才会生效。)

注意:并不是所有开发者都需要使用此 API。API 提供的所有功能也可以通过 Google Play 管理中心获得。不过,利用此 API,您可以将应用和商品详情更新流程与您现有的工具集成,这种功能对某些开发者来说非常实用。特别是,如果您有大量 APK 需要管理或者拥有多种不同语言区域的本地化商品详情,则可能会发现此 API 弥足珍贵。

Subscriptions and In-App Purchases API

利用此 API,您可以管理应用的应用内商品和订阅目录。此外,利用 Subscriptions and In-App Purchases API,您还可以通过标准的 GET 请求快速检索任何购买的详情。在该请求中,您需要提供购买相关信息:应用软件包名称、购买和订阅 ID 及购买令牌。服务器通过 JSON 对象响应,此对象将说明关联的购买详情、订单状态、开发者有效负载和其他信息。

您可以通过多种方式使用 Purchase Status API,例如,使用它报告和协调各个订单,以及验证购买和订阅过期。您也可以使用此 API 来了解已取消的订单和确认应用内商品是否已经消耗,包括它们是否是先消耗然后又被取消。

注意:Subscriptions and In-App Purchases API 不使用 Publishing API 所用的新事务型“修改”功能。InappproductsPurchases.productsPurchases.subscriptions 资源的方法会立即生效。不管每个资源的方法是否使用“修改”模式,该资源的 API 都专门引用页面注释。

Purchase Status API 是 Google Play Developer API v. 2.0 的一部分,可以通过 Google Developers Console 获得。

使用 API

要开始发起 API 调用,您需要直接从 Google Play 管理中心设置和管理 Google Play Developer API。API 只能由您 Google Play 开发者帐号的所有者管理。

要访问 API,您需要执行以下操作:

  1. 设置一个新的 API 项目或一个现有的 API 项目
  2. 设置一个或多个获得授权的客户端,它们可以是下列两种选择之一:

如需了解完整详情,请参阅 Google Play Developer API 使用入门页面。

分阶段修改

利用 Google Play Developer Publishing API 的 Edits 方法,您可以准备并提交对 Google Play 应用的更改。在准备好更新后,只需一个操作即可将其部署。您可以进行的更改包括:

  • 上传一个或多个 APK
  • 将不同的 APK 分配到不同的“轨道”:Alpha 版、Alpha 版、分阶段发布版本和正式版
  • 为应用创建和修改已本地化的商品详情
  • 为应用的商品详情上传屏幕截图和其他图像

分阶段完成所有需要的更改后,只需一步操作即可将其全部提交。

如需了解分阶段修改的完整详情,请参阅 Google Play Developer API Edits 页面。

注意:新的事务型“修改”功能只能由 Publishing API 使用。Subscriptions and In-App Purchases API 的方法将立即生效。不管每个资源的方法是否使用“修改”模式,该资源的 API 都专门引用页面注释。

有效使用 API

管理对 Google Play Developer API 的访问有助于确保为使用它的所有应用创建一个高效的环境(如配额中所述)。尽管您可以为自己的应用请求较高的每日配额,我们仍建议您通过以下方式尽可能减少访问次数:

  • 限制应用更新的次数 - 发布 Alpha 或 Beta 更新的频率每天不要超过一次。(正式版应用的更新频率应当更低。)每次更新都会消耗用户的时间,还可能花费他们的金钱。如果您更新的频率过于频繁,用户会开始忽略更新,甚至卸载产品。(当然,如果您的应用存在严重问题,则可以通过更新实施修复。)
  • 仅针对新购买查询 Purchase Status API - 发生购买时,您的应用会将购买令牌和其他详情传递到您的后端服务器,服务器可以使用 Purchase Status API 来验证购买。
  • 将购买详情缓存到您的服务器上 - 如果可能,请将应用内商品和订阅的购买详情缓存到您的后端服务器上。如果您的应用在运行时联系后端服务器来验证购买的有效性,您的服务器可以基于缓存的详情验证购买,以便最大程度减少 Purchase Status API 的使用并为用户提供尽可能快的响应(和最佳体验)。
  • 将订阅过期信息存储在您的服务器上 - 您的服务器应使用 Purchase Status API 查询新订阅令牌的过期日期,然后将此日期存储在本地。这样一来,您可以在过期日期当天或之后检查订阅的状态(参见下文)。
  • 仅在过期当天查询订阅状态 - 一旦服务器检索到订阅令牌的过期日期,在订阅达到或超过过期日期之前,它不应再次查询 Google Play 服务器来了解订阅状态。一般情况下,您的服务器每天会运行一个批次查询来查看即将过期订阅的状态,然后更新数据库。请注意:
    • 您的服务器不应每天都查询所有订阅。
    • 您的服务器绝不能根据 Android 应用的各个请求动态查询订阅状态。

按照上面的这些指导原则操作,您的实现将为用户提供绝佳的性能。

配额

对于使用 Google Play Developer API 的应用来说,初始免费配额被限制为每天 200000 次请求(每款应用)。此配额应当可以满足发布 Activity 和正常的订阅验证需求。

如果您需要为自己的应用请求更高的配额,请使用 Google Developers Console Quotas 窗格中的“Request more”链接。