API任务流程
下列章节介绍了应用提交API常见用途的API流程。
- API先决条件
- 关于ETag
- 关于Edit
- Edit生命周期
- 创建新Edit
- 获取打开的Edit
- 获取先前的Edit
- 管理APK文件
- 产品信息、详情和APK目标设备
- 图像上传
- 视频上传
- 设置未来发布日期
- 提交Edit
- 支持的语言
- 支持的时区
- 错误响应故障排除
API先决条件
在使用应用提交API之前,请按照以下步骤操作,为应用获取应用ID密钥和打开的Edit ID。
- 登录开发者控制台。
- 导航至应用与服务,然后单击应用。
- 在上传您的应用文件屏幕上,从Additional information部分复制应用ID密钥。
关于ETag
API提供了一种机制,确保并发API调用不会导致资源更新被覆盖。要更新资源,则需要发送GET请求以获取资源的当前值,然后发送PUT请求以更新该值。GET响应中包含一个ETag,ETag对于资源的当前值是唯一的。您需要在PUT请求中返回ETag。如果ETag值与服务器上的值不匹配,则请求失败,因为不匹配就表明自您发出GET请求以来,资源值有所变化。
在每个DELETE请求中,也需要发送ETag。
关于Edit
要在亚马逊应用商店中修改应用的相关信息,需要创建Edit。可将Edit视为一个容器,用于放置应用的下一个版本。通过Edit,您可以为应用准备许多更改,然后同时部署它们。例如,可以为应用的下一个版本更新描述字段并上传新资源(如APK文件和图像)。这些更改可在单个Edit中进行,在提交更改之前,该Edit将保持草稿状态。
首次创建Edit时,该Edit为当前部署的有效应用的副本。然后,可以调用API方法修改Edit。这些更改内容已做好提交准备后,可以提交Edit,将该应用版本提交至亚马逊应用商店。您也可以随时删除Edit,放弃所作更改,让应用保持原样。
注意: 每个应用一次只能打开一个Edit。如果发送了创建Edit的请求,但已经存在有效的Edit,则会收到包含错误消息的响应。
Edit生命周期
本节介绍了使用Edit更新应用信息的典型流程。无论是创建新的Edit还是检索打开的Edit,流程都是相同的。
-
根据需要修改Edit的字段。在所有API请求中,路径参数都包括Edit的appId和editId。
由于API支持PUT,而非PATCH,因此使用以下模式更新字段:
- 发送GET请求以检索字段的当前值。同时,从响应的标头中检索ETag。
- 根据需要修改字段中的数据。
- 使用PUT请求更新整个字段。将ETag加入PUT请求的标头中。
-
根据需要上传资源。该操作可能会将新资源添加到资源列表中,也可能会覆盖现有资源,具体取决于资源类型。请参阅以下详细内容。
-
准备好部署新的应用版本后,提交Edit。
创建新Edit
使用待修改应用的appId调用createEdit
。
这将为指定应用创建一个新的Edit。Edit的初始字段值和上传内容(如APK、应用商店产品信息和图像)将从已部署的应用版本复制。
对此请求的成功响应包含Edit的editId
。在后续请求中,使用该ID来更新Edit字段或上传资源。
获取打开的Edit
调用getActiveEdit,为应用获取打开的Edit的editId
。
获取先前的Edit
如果您有一个有效的Edit并且想要访问先前的Edit,可以调用 getPreviousEdit来获取先前版本的editId
。先前的Edit通常是应用上线版本的副本。如果您没有有效的Edit,则调用getPreviousEdit会返回null。
管理APK文件
有关确切的请求语法,请查看API参考中有关Edits.apks的章节。
替换现有APK
使用REPLACE方法替换现有APK,并保留现有APK设备定向信息。
- 调用listApks,获取APK列表。
- 调用replaceApk,替换APK,并保留现有设备定向。
删除现有APK
使用DELETE方法删除APK。
如果您想替换APK并删除当前定向信息,请先删除APK,然后上传新的APK版本。
- 调用listApks,获取APK列表。
- 调用deleteApk,删除指定APK。
- (可选)调用uploadApk,上传新的APK版本。
添加新APK
调用uploadApk,添加新APK。
上传大型APK
如果APK文件大于300M,请调用以下方法上传该APK:
- 调用uploadLargeAPK,上传文件。
- 调用attachAPK,将APK附加到Edit中。
产品信息、详情和APK目标设备
新的Edit对象包含每个区域设置的产品信息。执行以下步骤,为新的区域设置添加信息,或修改现有区域设置的应用商店产品信息:
- 调用getListing。
- 更新产品信息。从getListing响应中复制ETag。
- 调用updateListing。请确保将ETag添加至请求标头。
遵循相同的模式,修改Edit的详细信息。调用Get方法,根据需要更新详细信息,然后调用modifyDetails保存更改。
遵循相同的模式,修改APK目标设备。调用Get方法,根据需要添加并更新目标设备,然后调用modifyTargeting保存更改。请参阅应用提交API参考。
图像上传
调用uploadImage,上传新图像。如果图像类型支持单张图像(如图标),则新图像会替换旧图像。如果字段支持多张图像(如屏幕截图),图像会添加至现有图像组中。可以删除任何不需要的图像。
imageType的有效值包括:
- small-icons
- large-icons
- screenshots
- promo-images
- firetv-screenshots
- firetv-icons
- firetv-backgrounds
- firetv-featured-backgrounds
- firetv-featured-logos
有关图像大小的信息,请参阅图像资产指南。
视频上传
调用uploadVideo,上传新视频。
设置未来发布日期
默认情况下,Edit的发布日期为空。提交Edit后,亚马逊应用商店将启动应用新版本的发布流程。
要设置未来发布日期,请调用putAvailability。在请求正文中,使用dateTime
值和zoneId
值指定发布日期/时间。
dateTime遵循UTC格式: YYYY-MM-DDThh:mm:ss.s(例如2017-07-16T19:20:30.45)。
zoneId值为支持的时区之一。
提交Edit
调用commitEdit,向亚马逊应用商店提交更改。
如果没有发生验证错误,则Edit中指定的所有更改都将加入实际应用中。发布这些更改可能需要花费数小时,正如通过Google Play管理中心进行更改时一样。
支持的语言
下表列出了language
参数支持的值。
缩写 | 语言 |
---|---|
zh_CN | 中文 |
de_DE | 德语 |
en_AU | 英语(澳大利亚) |
en_GB | 英语(英国) |
en_IN | 英语(印度) |
en_US | 英语(美国) |
es_ES | 西班牙语 |
fr_FR | 法语 |
it_IT | 意大利语 |
ja_JP | 日语 |
pt_BR | 巴西葡萄牙语 |
支持的时区
以下表格列出了zoneId
参数支持的值。
US_Alaska |
US_Arizona |
US_Central |
US_East |
US_Eastern |
US_Hawaii |
US_Mountain |
US_Pacific |
Canada_Eastern |
Canada_Newfoundland |
Canada_Saskatchewan |
Europe_Athens |
Europe_Belgrade |
Europe_Berlin |
Europe_Brussels |
Europe_Helsinki |
Europe_London |
Europe_Madrid |
Europe_Minsk |
Europe_Moscow |
Europe_Paris |
Europe_Rome |
Europe_Warsaw |
Atlantic_Azores |
Atlantic_Cape_Verde |
Atlantic_South_Georgia |
Africa_Algiers |
Africa_Cairo |
Africa_Casablanca |
Africa_Harare |
Africa_Nairobi |
Africa_Windhoek |
Asia_Amman |
Asia_Baghdad |
Asia_Baku |
Asia_Bangkok |
Asia_Beirut |
Asia_Calcutta |
Asia_Colombo |
Asia_Dhaka |
Asia_Irkutsk |
Asia_Jerusalem |
Asia_Kabul |
Asia_Karachi |
Asia_Katmandu |
Asia_Kolkata |
Asia_Krasnoyarsk |
Asia_Kuala_Lumpur |
Asia_Kuwait |
Asia_Magadan |
Asia_Muscat |
Asia_Novosibirsk |
Asia_Rangoon |
Asia_Seoul |
Asia_Shanghai |
Asia_Taipei |
Asia_Tbilisi |
Asia_Tehran |
Asia_Tokyo |
Asia_Vladivostok |
Asia_Yakutsk |
Asia_Yekaterinburg |
Asia_Yerevan |
Australia_Adelaide |
Australia_Brisbane |
Australia_Darwin |
Australia_Hobart |
Australia_Perth |
Australia_Sydney |
Pacific_Auckland |
Pacific_Fiji |
Pacific_Guam |
Pacific_Midway |
Pacific_Tongatapu |
America_Bogota |
America_Buenos_Aires |
America_Caracas |
America_Chihuahua |
America_Godthab |
America_Guatemala |
America_Los_Angeles |
America_Manaus |
America_Mexico_City |
America_Montevideo |
America_Santiago |
America_Tijuana |
Brazil_East |
错误响应故障排除
如果应用正处于亚马逊审核流程中,则无法更新。如果在通过应用提交API更新应用时收到HTTP 412“Precondition Failed”(先决条件失败)响应,则说明应用处于待定状态,并且可能处于正在审核的状态。要确定应用的状态,请登录开发者控制台,从主信息页面中选择应用程序列表,选择您的应用并查看App Status(应用状态)选项卡。解决了这个问题并且应用上线后,您应该不会再收到HTTP 412“Precondition Failed”错误。
有关API请求和响应的更多详细信息,请参阅应用提交API参考。
Last updated: 2023年10月2日