При попытке авторизоваться для использования API youtube первый запрос авторизации работает нормально, но всякий раз, когда я пытаюсь обменять код авторизации на токен доступа, я получаю ошибку 400, которая выглядит следующим образом.
Token Response: {
"error": "invalid_grant",
"error_description": "Bad Request"
}
URL-адрес, который я вызвал, чтобы получить этот результат (измененный):
https://oauth2.googleapis.com/token?code=4/wQHX8O_ckUl3tSkhESEWuzOy_VhbGnTkpz-uE98FpzVhLxjA&client_id=80816cq3laikjocnu2imtqj7hhfdnu7jfih4l.apps.googleusercontent.com&client_secret=ZLuIRNEF&grant_type=authorization_code&redirect_uri=http%3A//127.0.0.1%3A49669&code_verifier=jaksfoiasjevtomiiszjfkldfsajmvsifhjavsmlkdfjasclmjhvsdajnhfvadxjkh
Код, который генерирует URL-адрес:
def url_squisher(url_components):
i = 0
url = ""
for x in url_components:
url += "".join(x)
if i > 1 and i % 2 == 0:
url += "&"
elif i == 0:
url += "?"
i += 1
urllib.parse.quote(url)
url = url[:len(url)-1]
return url
Он отлично работает для генерации URL для вызова запроса Auth, но idk, если что-то не так в запросе токена.
Вот код, который вызывает URL:
def get_token():
code = get_auth()
endpoint = "https://oauth2.googleapis.com/token"
token_request = [endpoint, "code=", code, "client_id=", client_id, "client_secret=", client_secret, "grant_type=",
"authorization_code", "redirect_uri=", redirect_uri, "code_verifier=", code_verifier]
tokenurl = url_squisher(token_request)
print(tokenurl)
tokenresponse = requests.post(tokenurl)
print("Token Response:", tokenresponse.text)
Я уже попробовал фокус с изменение часов вашего компьютера в соответствии с другим веб-сервером не помогло мне.