Захват токена доступа из URL-адреса перенаправления APIPython

Программы на Python
Anonymous
Захват токена доступа из URL-адреса перенаправления API

Сообщение Anonymous »

Я пытаюсь захватить свой токен доступа, который возвращается API во время процесса аутентификации. Официальный метод аутентификации через API:

Код: Выделить всё

from xyz_api import accessToken
app_id = "your_app_id"
app_secret = "your_app_secret"
app_session = accessToken.SessionModel(app_id, app_secret)
response = app_session.auth()
Приведенный выше пример вернет json типа:

Код: Выделить всё

{

"code" : 200,

"data" : {

"authorization_code": "some random code"

},
}
Теперь для создания URL-адреса используется следующий код:

Код: Выделить всё

authorization_code = “your_authorization_code”

app_session.set_token(authorization_code)

url = app_session.generate_token()
И тут у меня начинаются проблемы.

На этом этапе автор API рекомендует:

Код: Выделить всё

1. Use the generated URL and copy paste it into a browser.
2. The browser will then do the authentication and return the access token to a redirect
url (I used http://localhost:5000).
3. Copy and paste the access token from redirect URL
Чего я хочу:

Код: Выделить всё

To be able to finish the authentication and get the access_token from
python code itself.
Что я пробовал:
Использовал request.get(url), но он не работает.
Есть ли способ сделать все это, используя только python, без необходимости открывать браузер?

Код: Выделить всё

PS: The API I am trying to use is: https://api-docs.fyers.in/v1#authorization
Дальнейшее расследование
В ходе дальнейшего расследования я обнаружил следующее:
  • API использует oauth
  • URL-адрес, полученный из следующего кода, предоставленного автором API< /p>
    url = app_session.generate_token()
то же самое, что и когда я пишу следующий код:

Код: Выделить всё

oauth = OAuth2Session('app_id')
authorization_url, state = oauth.authorization_url(url)
  • В обоих случаях URL-адрес возвращается в виде:
    https: //api.fyers.in/api/v1/genrateToken?authorization_code=some_auth_code&appId=my_app_id
  • Если я скопирую, вставьте этот URL-адрес в браузер , он отправляет токен доступа обратно на мой redirect_url (http://localhost:5000)
  • Я пытаюсь получить токен доступа с помощью oauth ::fetch_token со следующим кодом, который не работает:
    oauth1 = OAuth2Session('app_id', state=state, redirect_uri="http://localhost:5000")
    token = oauth1.fetch_token('https://api.fyers.in/api/v1/genrateToken/',
    client_secret='app_secret',
    code=' the_auth_code_returned')
Искренне благодарен за помощь.

Подробнее здесь: https://stackoverflow.com/questions/633 ... direct-url

Вернуться в «Python»