Код: Выделить всё
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()
Код: Выделить всё
{
"code" : 200,
"data" : {
"authorization_code": "some random code"
},
}
Код: Выделить всё
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