@Blitzzz
учусь

Тинькофф API. Как получить access_token с помощью guzzle?

Доброго времени суток, пытаюсь авторизоваться через guzzle к API РКО Тинькофф Банка.
Стандартно через CURL всё работает:
$params=['grant_type'=>'refresh_token',
   'refresh_token'=>'<token>'
];
$headers = [
'POST /secure/token HTTP/1.1',
   'Content-Type: application/x-www-form-urlencoded'
];
$curlURL='https://sso.tinkoff.ru/secure/token';       
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$curlURL);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);

$curl_res = curl_exec($ch);
if($curl_res) {
    $server_output = json_decode($curl_res);
}
var_dump($curl_res);


Пытаюсь переписать код с помощью guzzle и получаю 400 Bad Request:
$refresh_token = '<token>';

$client = new GuzzleHttp\Client(['headers' => ['Content-Type' => 'application/x-www-form-urlencoded']]);

$response = $client->request('POST', 'https://sso.tinkoff.ru/secure/token', [
    'query' => ['grant_type' => 'refresh_token','refresh_token' => $refresh_token]
]);

echo $response->getStatusCode();
echo $response->getBody();


Не могу понять в чём проблема, пробовал разные варианты. У кого то есть подобный опыт? Спасибо!
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
@Blitzzz Автор вопроса
учусь
Вот рабочий код
$response = $client->request('POST', 'https://sso.tinkoff.ru/secure/token', [
    'form_params' => [
        'grant_type' => 'refresh_token',
        'refresh_token' => $refresh_token
    ]
]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы