所以我按照这里的步骤来写信:https://www.reddit.com/r/algotrading/comments/c81vzq/td_ameritrade_api_access_2019_guide/努力获得刷新 token ,以便我可以在 C# 中构建客户端应用程序以使用 TD Ameritrade 的 API,进行特殊股票和期权筛选和交易。在遇到任何麻烦之前,我已经走到了尽头。
在获取我的刷新 token 的最后一步,您填写 https://developer.tdameritrade.com/authentication/apis/post/token-0 上的字段,它失败了,我只是在 HTTP 401 错误中收到以下响应:
HTTP/1.1 401 Unauthorized
Access-Control-Allow-Headers: origin
Access-Control-Allow-Methods:
GET
Access-Control-Allow-Origin:
https://developer.tdameritrade.com
Access-Control-Max-Age: 3628800
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 31
Content-Security-Policy: frame-ancestors 'self'
Content-Type: application/json;charset=UTF-8
Date: Sat, 04 Apr 2020 16:07:04 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Application-Context: OAUTH_SERVICE:run:8080
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
{
"error": "invalid_grant"
}
可能是什么问题?我已经对每个步骤和文本框中的值(如下图)进行了两次和三次检查以接收刷新 token ,但我无法让它工作。根据指南的步骤,代码和客户端 ID 也已正确完成 - 我进行了两次和三次检查。
我按照 Reddit 指南中的步骤以及 TDA Ameritrade 自己的链接指南进行操作,以确保我将正确的值放在正确的字段中,所以我真的不知道发生了什么。
任何帮助表示赞赏。
最佳答案
"code"或 "authorization code"只是一个一次性的密码,在 30 分钟后过期。它允许您获取“访问 token ”,尽管名称相似,但似乎有所不同。因此,请确保您合理快速地对身份验证代码进行 URL 解码,然后在 30 分钟内正确获得第一个响应。
也可以在周末尝试,因为最近在 GameStop 突袭期间,TDameritrade 的 SMS 网关的速度慢得令人沮丧,而且他们的身份验证握手可能在交易时间也出现问题。
请注意,手动 Post Access Token 表单的 client_id 插槽似乎不需要附加“@AMER.OAUTHAP”。
关于api - 为什么我对 TDA 的 API 的 API 调用没有返回刷新 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61031585/