У меня проблемы с настольным приложением и подключением к Blizzard API. Что касается OAuth2, я знаю, что мне нужно перенаправить пользователя на веб-сайт, где они предоставляют приложению авторизацию для доступа к данным от их имени. Отсюда есть URL-адрес перенаправления, содержащий код авторизации, который необходимо обменять на токен доступа.
Мое приложение предназначено для настольных компьютеров, поэтому я не знаю, как получить код авторизации из этого URL-адреса перенаправления. Вот часть моего кода, который я использую для тестирования:
if self._check_connection():
self.client_id = os.getenv("BLIZZ_CLIENT_ID")
self.client_secret = os.getenv("BLIZZ_CLIENT_SECRET")
self.region = "us"
state = "abcd1234"
re = requests.get(f"{BLIZZ_AUTH_URL}?client_id={self.client_id}&response_type=code&redirect_uri={REPO_URL}&locale={self.region}&scope={SC2_SCOPE}&state={state}")
re_url = re.url
print(re_url)
Более полный продукт будет использовать веб-браузер, чтобы заставить пользователя авторизовать мое приложение, но затем мне нужно получить этот код, который будет в URL перенаправления после нажатия «Разрешить». Итак, я пытаюсь получить URL-адрес в этом последнем бите, но когда я печатаю его на консоли, чтобы проверить, он не содержит кода авторизации. Однако, если я щелкну по нему, откроется нужная страница в браузере, которая содержит код авторизации.
Спасибо, что нашли время, чтобы прочитать, я просмотрел всевозможные сообщения в Inte rnet, но большинство из них посвящены веб-приложениям или они говорят что-то расплывчатое, например «получите код авторизации и обменяйте его», не уточняя, как это на самом деле работает.
Есть ли какой-нибудь чистый способ сделать это, который не Требовать, чтобы пользователь просто скопировал код из адресной строки и вставил его в мое приложение? В идеале я бы хотел просто взять его программно и продолжить оттуда.