400 неверных запросов недействительных грантов - PullRequest
0 голосов
/ 10 февраля 2020

При попытке авторизоваться для использования 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)

Я уже попробовал фокус с изменение часов вашего компьютера в соответствии с другим веб-сервером не помогло мне.

...