Я тестирую Google OAuth 2.0. У меня есть мой идентификатор клиента, секрет клиента и код авторизации. Теперь я хочу получить доступ и обновить токен.
Однако я могу сделать это из PHP. Но при использовании Invalid Grant ошибка при использовании Javascript.
<!DOCTYPE html>
Get your Access Token
функция getAccessToken () {$ .ajax ({тип: 'POST', URL: "
https://accounts.google.com/o/oauth2/token", contentType: 'application/ x-www-form-urlencoded ', dataType:' json ', data: {client_id:' MY CLIENT ID ', client_secret:' MY SECRET ', код:' MY AUTH CODE ', redirect_uri:' http://localhost:8888/google-api.html', grant_type:'authorization_code'}, success: function (data) {$ ('# response'). html (data);}, error: function (e) {$ ('# response'). html (e.responseText);}});}
В основном я пытаюсь преобразовать приведенный ниже PHP-запрос Curl POST в Ajax
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://accounts.google.com/o/oauth2/token");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/x-www-form-urlencoded']);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'code' => $code,
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close ($ch);
Примечание. Подобный типвопросы о переполнении стека имеют много точек зрения, но остаются без ответа. Гениальные разработчики любезно предоставят ваш вклад. Я также застрял в течение 3 дней.