请求令牌
Request Token 是 OAuth 1.0a 授权流程的第一步。应用先向 IBKR 请求一个临时令牌,再把用户引导到授权页面。
它不是 Access Token
Section titled “它不是 Access Token”| Token | 用途 |
|---|---|
| Request Token | 临时令牌,用来发起用户授权。 |
| Access Token | 用户授权后得到的长期访问令牌。 |
| 参数 | 中文说明 |
|---|---|
oauth_consumer_key | 应用的 consumer key。 |
oauth_signature_method | 签名算法。 |
oauth_timestamp | 请求发起时的 Unix 时间戳。 |
oauth_nonce | 随机字符串,防重放。 |
oauth_callback | 授权完成后的回调地址。 |
oauth_signature | 根据请求和密钥生成的签名。 |
请求结构示例
Section titled “请求结构示例”import timeimport uuid
params = { "oauth_consumer_key": "YOUR_CONSUMER_KEY", "oauth_signature_method": "RSA-SHA256", "oauth_timestamp": str(int(time.time())), "oauth_nonce": uuid.uuid4().hex, "oauth_callback": "https://example.com/ibkr/callback",}
# 真实请求还需要按 OAuth 1.0a 规则生成 oauth_signature签名规则是 OAuth 1.0a 最容易出错的部分。参数排序、URL 编码、HTTP 方法、请求路径和密钥都必须一致。
| 问题 | 排查方向 |
|---|---|
| 签名无效 | 检查参数排序、编码、请求方法和私钥。 |
| 时间戳错误 | 服务器时间不同步。 |
| callback 不匹配 | 回调地址和 IBKR 配置不一致。 |
| consumer key 无效 | 应用尚未审批或填错环境。 |