laravel php curl запрос для finerworks api

#php #laravel #curl #php-curl #laravel-api

#php #laravel #curl #php-curl #laravel-api

Вопрос:

Я хочу использовать finerworks api, и мой curl-код находится здесь

 $data1 = array(
'web_api_key' => '********-****-****-*****-************',
'app_key' => '********-****-****-*****-************',
);
$data2['credentials'] = $data1;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.finerworks.com/v3/test_my_credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30000,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data2),
CURLOPT_HTTPHEADER => array(
    "accept: */*",
    "accept-language: en-US,en;q=0.8",
    "content-type: application/json",
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
print_r(json_decode($response));
}
  

когда я запускаю этот код, вот мой ответ на запрос ниже

 stdClass Object ( [Message] => The request is invalid. [ModelState] => stdClass Object ( [ApiC.Models.authorization_credentials] => Array ( [0] => Missing or unauthorized api credentials ) ) ) 
  

Пожалуйста, помогите мне решить эту
проблему заранее спасибо

Ответ №1:

Передайте учетные данные в заголовке

 $data1 = array(
    'web_api_key' => '********-****-****-*****-************',
    'app_key' => '********-****-****-*****-************',
);
$data2['credentials'] = $data1;
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.finerworks.com/v3/test_my_credentials",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30000,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode($data2),
    CURLOPT_HTTPHEADER => array(
        "accept: */*",
        "accept-language: en-US,en;q=0.8",
        "content-type: application/json",
        "web_api_key: YOUR web_api_key",
        "app_key: YOUR app_key",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:".$err;
} else {
    print_r(json_decode($response));
}
  

Комментарии:

1. Я установил это, и теперь он показывает эту ошибку stdClass Object ([Message] => Произошла ошибка. [ExceptionMessage] => Ссылка на объект не установлена для экземпляра объекта. [ExceptionType] => System.NullReferenceException [StackTrace] => в системе. Объект. GetType() в ApiC.Models. Пользовательский идентификатор. Требуемый список заказов. isValid(значение объекта, ValidationContext ValidationContext) в D:Visual Studio 2017ПроектыApiCApiCМоделиCustomValidator.cs:строка 233