返回
亚马逊 SP-API 访问令牌缺失?试试这些修复方法
php
2024-03-20 19:12:09
Amazon SP-API 访问令牌缺失:修复指南
在使用 PHP 的 CURL 来执行 SP-API 调用时,你可能会遇到一个常见的错误,即"访问令牌缺失"。此错误会妨碍你访问 SP-API 端点,并获取产品列表和其他信息。
错误原因
这个错误表明在你的请求中缺少有效的访问令牌。访问令牌是验证你对 SP-API 资源的访问权限的重要组成部分。如果没有访问令牌,亚马逊将无法授予你访问权限。
解决方案
要解决此错误,你需要确保在你的请求中正确设置了 Authorization 标头,其中包含一个有效的访问令牌。以下是步骤:
- 获取访问令牌: 使用你的刷新令牌从亚马逊的令牌端点获取一个新的访问令牌。
- 设置 Authorization 标头: 在你的请求中,设置 Authorization 标头,格式为 "Bearer ",后面跟上你从上一步中获取的访问令牌。
更新后的 PHP 代码示例:
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer ' . $accessToken
);
$curl = curl_init($this->amazonApiUrl."/catalog/2022-04-01/items?marketplaceIds=ATVPDKIKX0DER");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_USERAGENT, 'XXXXXXXXX-app/v1');
$response = curl_exec($curl);
其他检查
除了设置 Authorization 标头,还要执行以下额外检查:
- 确认你已将正确的访问令牌复制到你的代码中。
- 检查你的访问令牌是否仍然有效。如果已过期,请使用刷新令牌获取新令牌。
- 确保你的应用程序具有访问所请求资源的权限。
结论
通过遵循这些步骤,你应该可以解决 "访问令牌缺失" 错误,并成功检索产品列表。记住定期检查你的访问令牌,以确保其始终有效。
常见问题解答
1. 我如何知道我的访问令牌是否有效?
你可以使用亚马逊的令牌端点来检查你的访问令牌是否有效。
2. 如何获取新的访问令牌?
使用你的刷新令牌从亚马逊的令牌端点获取一个新的访问令牌。
3. 我的应用程序如何获得访问权限?
通过注册亚马逊 MWS Developer Central 并请求所需的权限来为你的应用程序获取访问权限。
4. 为什么我会收到 "未授权" 错误?
这可能表明你的访问令牌已过期或无效,或者你的应用程序未被授予访问所请求资源的权限。
5. 如何解决其他 SP-API 错误?
Amazon SP-API 文档提供了有关如何解决不同错误代码的详细信息。