получение кода URL
Что имею?
После того, как спортсмен принимает запрос на авторизацию, сервер Strava перенаправляет спортсмена на URL-адрес, указанный в приложении (см.рисунок).
Строка запроса URL будет включать код авторизации, который мне нужно получить средствами языка программирования Python.
Вопрос: как подобное можно реализовать в Python?
ссылка на приложение:
Ответы (1 шт):
Обычно вид авторизации (с редиректом на несуществующую страницу) сделан для встроенных виджетов, например на gtk отслеживается uri таким образом.
import gtk
import webkit
view = webkit.WebView()
sw = gtk.ScrolledWindow()
sw.add(view)
win = gtk.Window(gtk.WINDOW_TOPLEVEL)
win.add(sw)
win.show_all()
def on_navigation_requested(self, view, frame, req, data=None):
uri = req.get_uri()
if "code=" in uri:
print(uri)
else:
return False
return True
view.connect("navigation-requested", on_navigation_requested)
view.open("http://https://www.strava.com/oauth/authorize?.....")
gtk.main()
Но похоже у вас можно указать не только localhost. Тогда нужно запустить вэб сервер (на порту 8081 например) и открыть эту ссылку с браузера указав redirect_uri=http://localhost:8081.
from http.server import HTTPServer, BaseHTTPRequestHandler
class Redirect(BaseHTTPRequestHandler):
def do_GET(self):
uri = requestline
self.send_response(204)
self.end_headers()
HTTPServer(("", 8081), Redirect).serve_forever()
Реализовать можно на любом из многих хттп серверов на питоне.

