Hello,
You can try below code, it worked for me.
This can do automated login to Fyers API2
import time
from urllib.parse import urlparse, parse_qs
import requests
from fyers_api import fyersModel
from fyers_api import accessToken
import traceback
import json
# FILL YOU DETAILS IN BELOW **HIGHLIGHTED** FIELDS
client_id = "**YOURID**"
secret_key = "**YOURKEY**"
redirect_uri = "**YOUR_REDIRECT_URL**"
response_type = "code"
grant_type = "authorization_code"
state = "private"
nonce = "private"
input = {"fyers_id": "**YOURID**", "password": "**YOUR_PASSWORD**", "pan_dob": "**YOUR_PAN**", "app_id": "**YOUR_APP_ID**",
"redirect_uri": "**YOUR_REDIRECT_URL**", "appType": "100", "code_challenge": "", "state": "private",
"scope": "", "nonce": "private", "response_type": "code", "create_cookie": "true"}
try:
session = accessToken.SessionModel(client_id=client_id, secret_key=secret_key, redirect_uri=redirect_uri, response_type=response_type, grant_type=grant_type, state=state, nonce=nonce)
response = session.generate_authcode()
print("Response from Try-Catch 1 is - \n", response)
headers = {
"accept": "*/*",
"accept-language": "en-IN,en-US;q=0.9,en;q=0.8",
"content-type": "application/json; charset=UTF-8",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"referrer": response
}
result = [requests.post](http://requests.post)("[https://api.fyers.in/api/v2/token](https://api.fyers.in/api/v2/token)",
headers=headers, json=input, allow_redirects=True)
var = json.loads(result.content)
URL = var["Url"]
print(URL)
parsed = urlparse(URL)
parsedlist = parse_qs(parsed.query)['auth_code']
auth_code = parsedlist[0]
session.set_token(auth_code)
response = session.generate_token()
access_token = response["access_token"]
**#INSERT YOUR DESKTOP PATH FOR LOG FILE CREATION**
fyers = fyersModel.FyersModel(client_id=client_id, token=access_token, log_path="**/Users/username/Desktop**")
is_async = True
**#SAMPLE ORDER PLACEMENT CODE WRITTEN BELOW !!!!**
data = {
"symbol": "NSE:SBIN-EQ",
"qty": 1,
"type": 1,
"side": 1,
"productType": "MARGIN",
"limitPrice": 500,
"stopPrice": 0,
"validity": "DAY",
"disclosedQty": 0,
"offlineOrder": "False",
"stopLoss": 5,
"takeProfit": 8
}
print([fyers.place](http://fyers.place)_order(data))
except:
print(traceback.print_exc())