我正在使用requests-oauthlib
ETrade API 进行身份验证。它要求授权 URL 具有以下格式:
https://us.etrade.com/e/t/etws/authorize?key={oauth_consumer_key}&token={oauth_token}
但是,当我调用 时authorization_url()
,它使用oauth_token
而不是token
该参数。目前我正在使用format()
自己格式化 URL,但现在我同时拥有token
和oauth_token
参数。这有效,但完全不优雅。有什么方法可以修改authorization_url()
允许我需要的 URL 格式的行为吗?
为了完整起见,这是我的代码:
oauth_session = requests_oauthlib.OAuth1Session(config.oauth_consumer_key, config.consumer_secret, callback_uri='oob')
def get_request_token():
path = 'oauth/request_token'
url = base_url + path
return oauth_session.fetch_request_token(url)
def get_authorization_url(request_token):
url_format = 'https://us.etrade.com/e/t/etws/authorize?key={oauth_consumer_key}&token={oauth_token}'
url = url_format.format(oauth_consumer_key=config.oauth_consumer_key, oauth_token=request_token['oauth_token'])
return oauth_session.authorization_url(url)
request_token = get_request_token()
print(get_authorization_url(request_token))