使用 python 从 redirect_uri 获取精确 API 的授权码

Getting authorization code from redirect_uri for Exact API using python

更新:使用工作版本编辑了代码。您可以使用它来检索您的授权码。

我一直在想办法return授权码。我是 API 通信的新手,因此我可能在这里遗漏了一些重要的东西。我可以登录,但我无法 return 密码。请各位大侠帮帮我!

授权终点是https://start.exactonline.nl/api/oauth2/auth 令牌结束点是 https://start.exactonline.nl/api/oauth2/token

import requests
import urllib.parse
from bs4 import BeautifulSoup

user = ''

psw = ''

params = {'client_id': "",
    'redirect_uri': "",
    'response_type': "code",
    'force_login': "1"}

url = 'https://start.exactonline.nl/api/oauth2/auth/'
token_url = 'https://start.exactonline.nl/api/oauth2/token'

with requests.session() as s:
    OAuth_AccessRequest = s.get(url,params=params)
    
OAuthURL = OAuth_AccessRequest.url
soup = BeautifulSoup(OAuth_AccessRequest.content)
form = soup.form
login_data = {e['name']: e.get('value', '') for e in form.find_all('input', {'name': True})}
login_data.update({'UserNameField': user, 'PasswordField': psw})
login_data.update({'hf2StepLoginStep': 1})
login_url = OAuthURL.format(form.attrs['action'])

with requests.session() as s:
    Actual_login = s.get(login_url, params=login_data)
    
Authorization_code=Actual_login.url.split("https://salesanalysisexact.herokuapp.com/?code=")[-1]
Authorization_code=urllib.parse.unquote(Authorization_code)
print (Authorization_code)

我刚刚添加了下面的代码,我可以看到 redirec_uri 和授权码。我想我只是没有做出正确的请求类型。

code_url = s.get(login_url,params=login_data)