
本文档旨在帮助开发者解决在使用 Amazon Advertising API 创建关键词时遇到的 422 错误。该错误通常表示请求体中的数据格式不正确。本文将通过示例代码,详细介绍如何正确构建请求体,避免此类错误,并提供一些调试建议。
在使用 Amazon Advertising API 创建关键词时,开发者可能会遇到 HTTP 状态码 422,表示请求体中的数据格式不符合 API 的预期。 这个问题通常出现在使用 POST 方法向 /v2/sp/keywords 端点发送请求时。
问题分析
422 错误通常意味着请求体中的 JSON 结构不正确。Amazon Advertising API 对于创建关键词的请求,期望接收一个包含关键词对象的数组,而不是单个关键词对象。
解决方案
正确的做法是将关键词对象放置在一个数组中。以下示例代码展示了如何修改 PHP 代码以解决这个问题。
示例代码 (PHP)
<?php
$ch = curl_init();
$std_url = "YOUR_API_ENDPOINT"; // 替换为你的 API 端点
$accesstoken = "YOUR_ACCESS_TOKEN"; // 替换为你的 Access Token
$client = "YOUR_CLIENT_ID"; // 替换为你的 Client ID
$API_Scope = "YOUR_API_SCOPE"; // 替换为你的 API Scope
curl_setopt($ch, CURLOPT_URL, $std_url . "/v2/sp/keywords");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
// 正确的请求体结构:关键词对象数组
$data_string = array(array(
"campaignId" => "111111111111",
"adGroupId" => "2222222222222",
"state" => "enabled",
"keywordText" => "YetAnotherKeyword",
"matchType" => "broad",
"bid" => "0.05"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_string)); // 确保将数组编码为 JSON 字符串
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = ("Authorization: Bearer " . $accesstoken);
$headers[] = ("Amazon-Advertising-API-ClientId: " . $client);
$headers[] = ("Amazon-Advertising-API-Scope: " . $API_Scope);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
echo $result;
?>代码解释:
注意事项:
调试建议:
总结
解决 Amazon Advertising API 返回的 422 错误的关键在于确保请求体中的 JSON 结构符合 API 的预期。 通过将关键词对象放置在一个数组中,并使用 json_encode() 函数将其编码为 JSON 字符串,可以避免此错误。 此外,请务必参考 API 文档,并仔细检查请求头和请求体中的所有字段。 遵循这些建议,可以有效地解决在使用 Amazon Advertising API 创建关键词时遇到的问题。
以上就是Amazon Advertising API:解决创建关键词时返回 422 错误的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号