IBKR OAuth 1.0a请求request_token返回401: invalid consumer问题求助
IBKR OAuth 1.0a 请求令牌时返回401 "invalid consumer" 问题
正在集成Interactive Brokers(IBKR)的OAuth 1.0a协议,目前卡在请求令牌步骤(接口路径 /oauth/request_token),收到401错误:invalid consumer。
请求详情
- OAuth Consumer Key:TESTCONS(用于测试)
- 签名方法:RSA-SHA256
- 回调URL:oob(带外模式)
- Nonce和Timestamp:动态生成
- 私钥:直接在脚本中加载
代码实现
import requests import time import uuid import urllib.parse from requests_oauthlib import OAuth1 # API endpoint url = "https://api.ibkr.com/v1/api/oauth/request_token" # OAuth parameters oauth_params = { "oauth_consumer_key": "TESTCONS", "oauth_signature_method": "RSA-SHA256", "oauth_timestamp": str(int(time.time())), "oauth_nonce": uuid.uuid4().hex, "oauth_callback": "oob" } # Load RSA private key (masked) private_key = """-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBK... (masked) -----END PRIVATE KEY-----""" # Create OAuth1 object auth = OAuth1( client_key=oauth_params["oauth_consumer_key"], signature_method=oauth_params["oauth_signature_method"], rsa_key=private_key, nonce=oauth_params["oauth_nonce"], timestamp=oauth_params["oauth_timestamp"], callback_uri=oauth_params["oauth_callback"] ) # Make the request response = requests.post(url, auth=auth) # Check response if response.status_code == 200: credentials = urllib.parse.parse_qs(response.text) print(f"Request Token: {credentials.get('oauth_token')[0]}") print(f"Request Token Secret: {credentials.get('oauth_token_secret')[0]}") else: print(f"Error: {response.status_code}") print(response.text)
错误响应
Error: 401 {"error":"id: 92177, error: invalid consumer","statusCode":401}
补充信息
- 参考IBKR CPAPI v1的请求令牌相关文档
- 开发背景:第三方交易算法平台,使用Web API(非TWS API)的RESTful接口,服务器将代表用户操作IBKR账户。尝试用TESTCONS密钥针对个人IBKR账户实现第三方OAuth流程(文档说明该密钥适用于所有注册客户端),但调用接口时返回上述401错误。已知TESTCONS专为模拟交易账户设计。
内容的提问来源于stack exchange,提问作者crp
相关产品推荐
相关产品推荐

