我在使用Figo的API(documentation here)获得正确答案时遇到问题
我正在运行一个设法连接和登录的python脚本,但是我得到一个包含相同表单的html的响应,尽管响应的状态是:200
由于我想在没有Web浏览器界面的情况下在我的服务器上执行所有操作,并且需要使用令牌来执行我需要对API执行的所有操作,因此我非常感谢帮助您解决以下问题:
到目前为止代码:
import requests
url = 'https://api.figo.me/auth/code'
username = 'demo@figo.me'
password = 'demo1234'
client_id = 'CaESKmC8MAhNpDe5rvmWnSkRE_7pkkVIIgMwclgzGcQY'
payload = {'response_type': 'code', 'client_id': client_id, 'scope': 'accounts=ro+transactions=ro', 'state': 'xqD6gjWygsBlF0uB'}
r = requests.get(url, params=payload, allow_redirects=False)
login_redirect = r.headers['location']
a = requests.get(login_redirect, auth=(username, password))
此处,r
是初始回复(没有重定向),因此我可以获取登录表单的网址。
如果我手动将login_redirect的结果放入我的webbrowser,我会看到一个登录表单弹出,然后在同一个url下,确认表单要求我选择一个选项然后接受。如果我手动执行此操作,我最终会重定向到以下内容:
http://localhost:3000/callback?state=xqD6gjWygsBlF0uB&code=OWcCVv2jAIgtAC7hDtVnj0s5h-wE6EVVWvFEumRxYlj-7RmtyvuxZCwfU2MgwcDM939Sx7ZSHVo87fJh-W0xYSzEVmWNj6MzyOr2CPsp0RCo
其中确实包含了我最终需要的身份验证码!但话说回来,我需要在没有网络界面的情况下完成这项工作。
修改
我目前正在尝试使用selenium for Python进行表单交互。 如果我找到了什么会更新。
编辑2:
硒没有运气,我使用的网络服务器不支持。