返回

亚马逊 SP-API 访问令牌缺失?试试这些修复方法

php

Amazon SP-API 访问令牌缺失:修复指南

在使用 PHP 的 CURL 来执行 SP-API 调用时,你可能会遇到一个常见的错误,即"访问令牌缺失"。此错误会妨碍你访问 SP-API 端点,并获取产品列表和其他信息。

错误原因

这个错误表明在你的请求中缺少有效的访问令牌。访问令牌是验证你对 SP-API 资源的访问权限的重要组成部分。如果没有访问令牌,亚马逊将无法授予你访问权限。

解决方案

要解决此错误,你需要确保在你的请求中正确设置了 Authorization 标头,其中包含一个有效的访问令牌。以下是步骤:

  1. 获取访问令牌: 使用你的刷新令牌从亚马逊的令牌端点获取一个新的访问令牌。
  2. 设置 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 文档提供了有关如何解决不同错误代码的详细信息。