php Amazon SP_API POST createReport()响应返回Invalid Input

cyej8jka  于 2023-05-16  发布在  PHP
关注(0)|答案(2)|浏览(236)

我正在尝试创建一个报告,以便可以批量导入产品。我现在面临的问题是,无论我做了什么,总是得到无效的输入错误。这似乎非常非常模糊的错误信息,我已经检查了issue在这里和类似的一次,但不幸的是没有解决方案的工作。
所以如果你检查下面收到的来自sp-api的错误

{
    "notifications": [],
    "text": "{\"message\":\"[400] [{\\\"code\\\":\\\"InvalidInput\\\",\\\"message\\\":\\\"Could not match input arguments\\\"}]\",\"success\":false}"
}

你会注意到,我的代码中似乎有一个关于数据类型的错误(正如我从错误中理解的那样),但我已经确定了很多次的数据类型,即使我把数据写为字符串[],但老实说,这花了太多时间。请找到我的密码

$config = new Configuration([
        "lwaClientId" => $account_data['lwa_client_id'],
        "lwaClientSecret" => $account_data['lwa_client_secret'],
        "lwaRefreshToken" => $account_data['lwa_refresh_token'],
        "awsAccessKeyId" => $account_data['aws_access_key'],
        "awsSecretAccessKey" => $account_data['aws_secret_key'],
        "endpoint" => SellingPartnerApi\Endpoint::NA ,
    ]);
    $apiInstance = new SellingPartnerApi\Api\ReportsApi($config);

    $body = new SellingPartnerApi\Model\Reports\CreateReportSpecification([
                'marketplace_ids' => [$merchant_data['marketplace_ids']], 
                'report_type' => ReportType::GET_MERCHANT_LISTINGS_ALL_DATA['name'],
    ]);
    try{
        $report_id = $apiInstance->createReport($body);
       }catch(Exception $e){
        return array("message"=>$e->getMessage(),'success'=>false);
    }

顺便说一句,我正在使用这个库https://github.com/jlevers/selling-partner-api请注意,CreateReportSpecification参数中的3个是可选的(report_options,data_start_time,data_end_time),我没有在构造函数中传递它。
你能告诉我我的代码出了什么问题吗?为什么我收到无效的输入??
先谢谢你了

hfyxw5xn

hfyxw5xn1#

检查AWS_ENV=PRODUCTION(不是SANDBOX)

b1payxdu

b1payxdu2#

'marketplace_ids' => [$merchant_data['marketplace_ids']],

除非$merchant_data ['marketplace_ids']是一个字符串,否则您可能不需要围绕它的数组

相关问题