【发布时间】:2019-10-02 06:31:21
【问题描述】:
我正在为 TD Ameritrade 创建一个 API(我第一次创建或处理 API),我需要输入自己的回调 URL。我知道回调 URL 是 API 发送信息的地方,而且我听说我可以使用我的 localhost API。我搜索了互联网,但我不知道它是如何工作的,我想知道我是否可以使用http://localhost?
对不起,如果我看起来像个菜鸟,因为我是
【问题讨论】:
我正在为 TD Ameritrade 创建一个 API(我第一次创建或处理 API),我需要输入自己的回调 URL。我知道回调 URL 是 API 发送信息的地方,而且我听说我可以使用我的 localhost API。我搜索了互联网,但我不知道它是如何工作的,我想知道我是否可以使用http://localhost?
对不起,如果我看起来像个菜鸟,因为我是
【问题讨论】:
简而言之,是的。
遵循优秀的指示 https://www.reddit.com/r/algotrading/comments/c81vzq/td_ameritrade_api_access_2019_guide/。 (即使和他们在一起,我也花了很多时间在试错上!)
由于 stackoverflow 在响应中限制为 8 个链接,并且 localhost 文本字符串看起来像一个链接,因此我将其显示为用分号替换冒号,即 http;//localhost 以减少链接数.对不起。
我在第一次尝试 Brave 后使用了 Chrome 浏览器,但它不起作用,可能是因为我的选项选择。
转到https://developer.tdameritrade.com/user/me/apps
使用 http;//localhost 添加一个新的应用程序(如果有的话,删除现有的应用程序)。 复制生成的消费者密钥文本字符串(AKA client_id 或 OAuth 用户 ID)。
转到https://developer.tdameritrade.com/content/simple-auth-local-apps,按照说明进行操作。注意:由于复制/粘贴验证码,MSWord 插入了前导/尾随空格,在浪费过多时间识别问题后必须手动删除。地址字符串如下所示:
这会返回一个页面,说明服务器拒绝连接,但地址栏现在在地址栏中包含一个 VeryLongStringOfCharacters: https;//localhost/?code= VeryLongStringOfCharacters
复制地址栏的内容,到https://www.urldecoder.org/,将上面解码,提取出“code=”后面的文字。这是你的 refresh_token
转到:https://developer.tdameritrade.com/authentication/apis/post/token-0,用
填写字段grant_type=authorization_code
refresh_token=<<blank>>
access_type=offline
code=RefreshTokenTextString
client_id=ConsumerKeyTextString@AMER.OAUTHAP
redirect_uri=http;//localhost
按发送。
如果结果页面以 HTTP/1.1 200 OK 开头,则说明您成功了。
【讨论】:
{ "error": "invalid_grant" }。我已经为此工作了一个多月,只是试图成功进行身份验证。我已经尝试了所有可能的变化组合,并按照所有说明进行操作。我相信他们的 API 坏了。
如果您生成新代码并基于该代码尝试获取新的访问令牌。它应该工作。
【讨论】:
尝试将您的重定向更新为:
redirect_uri=https://localhost
他们现在可能需要 https,而您需要一个冒号而不是分号。一切看起来都是正确的。此过程通常需要我尝试一次以上,并且每 90 天需要 15 分钟到 1 小时才能让我的刷新令牌平方。
【讨论】: