Интегрирование уникальной ссылки trustpilot для клиентов с php и curl

Мне нужно создать уникальную ссылку для клиентов виджета Trustpilot. Для этого мне нужен токен доступа. Я перепробовал все возможные способы, но столкнулся с той же ошибкой

{«Причина»: «Неизвестный тип_транспорта»} «

Ниже мой код для того же

$data = array(
GRANT_TYPE => GRANT_TYPE_VALUE,
TRUSTPILOT_USERNAME => TRUSTPILOT_USERNAME_VALUE,
TRUSTPILOT_PASSWORD => TRUSTPILOT_PASSWORD_VALUE,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,“https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken”);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data); //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‘Authorization: Basic base64 encoded apikey:secretkey’,
‘Content-Type: application/json’
));
$server_output = curl_exec($ch);
curl_close($ch);
var_dump($server_output);

Заранее спасибо

0

Решение

Вы пробовали установку Content-Type в application/x-www-form-urlencoded?

0

Другие решения

Я получил это работает, но я должен был сделать несколько вещей, чтобы заставить это работать.

Данные полезной нагрузки должны были быть преобразованы с использованием http_build_query вот так

$data = http_build_query(array(
'grant_type' => 'password',
'username' => $email,
'password' => $password,
));

Тогда у curl возникли проблемы с проверкой SSL-сертификата с сервера. Поэтому я добавил эти две строки:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

Значение заголовков, где изменилось на

$authorization = 'Basic '. base64_encode($key . ':' . $secret);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: ' . $authorization,
'Content-Type: application/x-www-form-urlencoded'
));

Финальный фрагмент кода:

$data = http_build_query(array(
'grant_type' => 'password',
'username' => $username,
'password' => $password,
));
$authorization = 'Basic '. base64_encode($key . ':' . $secret);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: ' . $authorization,
'Content-Type: application/x-www-form-urlencoded'
));

Надеюсь, что это поможет вам.

0

По вопросам рекламы [email protected]