Вызов PHP Curl API GET с использованием ключа авторизации и секрета

Я использую PHP Curl для выполнения GET-вызова API (manheim api). Ниже приведен код, который я использую:

$vin    = 'abc.............';
$atoken = 'xzc.......................';

$request_headers   = array();
$request_headers[] ='Authorization: Bearer: '.$atoken;
$request_headers[] ='Content-Type: application/x-www-form-urlencoded';

$handle  = curl_init();
$api_url = 'https://api.manheim.com/descriptions/capture/vin/'.$vin;    

$rawPostData = array( 'grant_type' => 'client_credentials', 'client_id' => 'xzc.......................', 'client_secret' => '6sd.......' ); 
// $data_string     = json_encode($rawPostData);

$data_string = '';

//create name value pairs seperated by &
foreach($rawPostData as $k => $v) 
{ 
    $data_string .= $k . '='.$v.'&'; 
}

rtrim($data_string, '&');

curl_setopt_array(
    $handle,
    array(
        CURLOPT_URL             => $api_url,
        CURLOPT_POST            => true,
        CURLOPT_POSTFIELDS      => $data_string,
        CURLOPT_RETURNTRANSFER  => true,
        CURLOPT_HTTPHEADER      => $request_headers,
        CURLOPT_SSL_VERIFYPEER  => false,
        CURLOPT_HEADER          => true,
        CURLOPT_TIMEOUT         => -1
    )
);

$data = curl_exec($handle);
echo serialize($data);

В ответ получаю следующее:

«HTTP/1.1 401 Unauthorized Content-Type: text/xml Дата: пятница, 19 января 2018 г., 06:44:21 GMT Server: Mashery Proxy WWW-Authenticate: Bearer realm="api.manheim.com" X-Error-Detail- Заголовок: Аккаунт неактивен X-Mashery-Error-Code: ERR_403_DEVELOPER_INACTIVE X-Mashery-Responder: prod-j-worker-us-east-1e-123.mashery.com Content-Length: 27 Connection: keep-alive Developer Неактивно

Пишет "Разработчик неактивен". Я не уверен, где я ошибаюсь.


person Mona    schedule 19.01.2018    source источник


Ответы (1)


Вы добавили двоеточие (:) после 'Bearer'. Удалите его, и он должен работать. Заголовок авторизации должен выглядеть как Authorization: Bearer myvalidtoken

Заголовок X-Mashery-Error-Code: ERR_403_DEVELOPER_INACTIVE добавляется mashery, когда вы не прошли аутентификацию должным образом. Причина может быть

  1. Заголовок «Авторизация» имеет неверные значения

  2. Токен создан с неправильным ключом API (у которого нет доступа к этой конечной точке)

  3. Срок действия вашего действительного токена истек, и он уже удален (обычно через 1 час после истечения срока действия) из базы данных mashery.

person Abbin Varghese    schedule 06.02.2018