Я пытаюсь подключиться к провайдеру OAuth2, используя cURL в PHP 5. Я установил начальную авторизацию и получил ее нормально.
Тем не менее, я застреваю с тем, чтобы заставить его отправить мне жетон. Я продолжаю нажимать на ошибку «unsupported_grant_type». Это мой код до сих пор:
$token_url = 'https://discordapp.com/api/oauth2/token';
if (!$code)
{
echo '<a href="'. $auth_url . '">Login with Discord</a>';
} else {
// cURL Request Goes Here.
$chB = curl_init();
$post_opts = array(
'client_id' => '[id_goes_here]',
'client_secret' => '[secret_goes_here',
'code' => $code,
'redirect_uri' => '[valid_redirect_uri_goes_here]',
'grant_type' => 'authorization_code',
);
$c_opts = array(
CURLOPT_URL => $token_url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Content-type: application/x-www-form-urlencoded',
),
CURLOPT_POSTFIELDS => $post_opts,
);
curl_setopt_array($chB, $c_opts);
$run_now = curl_exec($chB);
$code = curl_getinfo($chB, CURLINFO_HTTP_CODE);
curl_close($chB);
print($code);
var_dump($run_now);
}
Как видите, я отправляю сообщение с типом разрешения authorization_code. $ code — это возвращаемый код из конечной точки авторизации. У меня также есть данные формы, заданные как x-www-form-urlencoded.
Может кто-нибудь указать мне, что я делаю здесь неправильно?
Я искал несколько часов в Google, SO и т. Д. Я не вижу ни одного свежего совета, который помог бы мне найти что-то еще, кроме того, где я уже нахожусь.
Задача ещё не решена.
Других решений пока нет …