实现getUserData更改
获取访问令牌API
亚马逊应用商店IAP提供了获取访问令牌REST API,用于获取访问令牌。本节介绍相应的请求、响应和错误。访问令牌请求
应用收到包含有效授权码的requestUserProfileAccess() 的响应后,可使用该授权码获取访问令牌。有了访问令牌,客户端就可以读取客户配置文件。
获取访问令牌API必须使用POST请求而不是GET请求,如下例所示。
| 请求参数 | 描述 |
|---|---|
grant_type | 必需。请求的访问权限授予类型。必须为authorization_code。 |
code | 必需。requestUserProfileAccess() 方法返回的授权码。 |
client_id | 必需。客户端标识符。 |
client_secret | 必需。注册过程中分配给客户端的密钥值。由于网页无法可靠地存储客户端密钥,请勿在基于浏览器的应用中使用客户端密钥。 |
访问令牌响应
要访问客户数据,必须向亚马逊应用商店IAP获取用户配置文件API提供访问令牌。访问令牌是长度在350个字符或以上的字母数字代码,最大大小为2048字节。访问令牌以字符Atza|开头。
响应参数使用application/json媒体类型进行编码。有关更多信息,请参阅RFC4627。以下是来自访问令牌请求的示例响应。
| 响应参数 | 描述 |
|---|---|
access_token | 用户账户的访问令牌。最大不超过2048字节。 |
token_type | 返回的令牌类型。值为bearer。 |
expires_in | 访问令牌的有效秒数。 |
refresh_token | 刷新令牌,可用于获取新的访问令牌。最大不超过2048字节。 |
访问令牌错误
对于某些错误,授权服务可能会返回HTTP 401 (Unauthorized)(HTTP 401 [未授权])状态代码。这包括以下情况:客户端在授权标头中传递了client_id和client_secret值,但无法对客户端进行身份验证。
下表介绍失败响应中的错误参数。
| 错误参数 | 描述 |
|---|---|
error | 包含错误代码值的ASCII错误代码。 |
error_description | 人类可读的ASCII字符串,含有错误相关信息,对客户端开发者非常有用。 |
request_id | 与您的访问令牌请求关联的ID。 |
error值中可能包含以下错误代码。
| 错误代码 | 描述 |
|---|---|
invalid_request | 请求中缺少必要参数、具有无效值,或格式不正确。 |
invalid_client | 客户端身份验证失败。该参数用于授权服务不返回HTTP 401 (Unauthorized) 状态代码的情况。 |
invalid_grant | 授权码无效、已过期、已撤销,或已发放至另一client_id。 |
unauthorized_client | 客户端无权使用授权码。可能因code_verifier无效而导致。 |
unsupported_grant_type | 客户端指定了错误的token_type。 |
ServerError | 服务器运行错误。 |
获取用户配置文件API
亚马逊应用商店IAP提供了获取用户配置文件REST API,用于获取用户配置文件数据。本节介绍相应的请求、响应和错误。用户配置文件请求
要访问授权的用户配置文件数据,请使用获取用户配置文件API将访问令牌提交至亚马逊应用商店。获取用户配置文件API使用HTTPS GET请求,并将从获取访问令牌API收到的访问令牌作为其唯一参数。 下例展示了获取用户配置文件数据的GET请求。| 请求参数 | 描述 |
|---|---|
access_token | 必需。从获取访问令牌API收到的访问令牌。 |
用户配置文件响应
如果访问令牌有效,则会在HTTP响应中收到JSON形式的客户配置文件数据,如下例所示。| HTTP状态码 | 状态消息 | 描述 |
|---|---|---|
| 200 | Success | 请求成功。 |
| 400 | invalid_request | 请求缺少必需的参数或存在格式错误。 |
| 400 | invalid_token | 提供的访问令牌已过期、已撤销、格式错误或由于其他原因无效。 |
| 401 | insufficient_scope | 提供的访问令牌没有所需范围的访问权限。 |
| 500 | ServerError | 服务器运行错误。 |
账户设置的最佳实践
请遵循以下客户账户设置的最佳实践。-
如果
UserProfileAccessConsentStatus在useIapUserData()挂钩的getUserData()响应中的值为CONSENTED,请执行以下操作:- 从亚马逊应用商店IAP获取用户配置文件API中获取用户信息。使用此信息来创建采用临时密码的登录账户。无需向客户请求重置密码或提供其他详细信息,即可让客户登录应用。
- 之后,通过电子邮件要求客户重置密码。
-
如果
UserProfileAccessConsentStatus的值为UNAVAILABLE,请为客户使用默认的应用注册体验。

