6

次のことを使用して、Python の etrade API (サンドボックス) から oauth リクエスト トークンを取得しようとしています。

import requests
from oauthlib.oauth1 import Client

consumer_key = 'foo'     # actual key used
consumer_secret = 'bar'  # actual secret used
request_url = 'https://etwssandbox.etrade.com/oauth/sandbox/request_token'

client = Client(consumer_key, client_secret = consumer_secret)
uri, headers, body = client.sign(request_url)
add_params = ', realm="", oauth_token= "", oauth_callback="oob"'
headers['Authorization'] += add_params

r = requests.get(url = uri, headers = headers)
print(r.text) # abbreviated resp: " . . . .auth_problem=consumer_key_rejected,oauth_problem_advice=The oauth_consumer_key foo can be used only in SANDBOX environment . . . 

生成されるヘッダーは次のとおりです。

{'Authorization': 'OAuth oauth_nonce="99985873301258063061424248905", oauth_timestamp="1424248905", oauth_version="1.0", oauth_signature_method="HMAC-SHA1", oauth_consumer_key="foo", oauth_signature="A7ZY91UyZz6NfSGmMA5YWGnVM%2FQ%3D", realm="", oauth_token= "", oauth_callback="oob"'}

URL も試しました:「https://etwssandbox.etrade.com/oauth/sandbox/rest/request_token

そして、add_params なしでヘッダーを試してみました (空白の oauth_token が必要なようです?)

注: 紛らわしいことに、応答は定期的に返されます: 「Http/1.1 400 Bad Request」とまったく同じ URL/ヘッダーを使用します。

私が間違っていることは何か分かりますか?

4

2 に答える 2