gpt4 book ai didi

api - 既然 Robinhood 再次更改了 API,现在有什么方法可以获得不记名 token 吗?

转载 作者:行者123 更新时间:2023-12-03 23:52:14 28 4
gpt4 key购买 nike

我们一直在与 Robinhood.com 一起玩这个猫捉老鼠的游戏。我有一个交易应用程序,用于与 Robinhood 交易股票,但他们不断更改不受支持的非官方 API,使交易者难以使用。我知道很多人都在做同样的事情,我想联系他们看看是否有新的答案。最新的问题是当我尝试使用 URL https://api.robinhood.com/oauth2/token/ 获取不记名 token 时API 返回以下 JSON:{"detail":"此版本的 Robinhood 不再受支持。请更新您的应用程序或使用 Robinhood for Web 登录您的帐户。"}。这开始发生在 2019 年 4 月 26 日。

有没有人为此找到了解决方法,或者他们最终击败了我们?

最佳答案

一个更完整的解决方案(不需要浏览器):
使用 requests.session .

  • 通过向“https://robinhood.com/login”发出 GET 请求来获取登录页面。
    此时 session 的 cookie 将包含“device_id”。
  • 获取此 device_id 并将其用于向“https://api.robinhood.com/oauth2/token/”发出 oauth2 token 请求,并在数据请求中添加“challenge_type”(“sms”或“email”)。
    此请求将失败并显示 400 错误代码。 Robinhood 将发送带有临时(5 分钟)代码的 SMS 消息或电子邮件。
    同样在这一点上,使用 400 响应的正文从 JSON 对象内部的“挑战”中获取“id”。
  • 通过向“https://api.robinhood.com/challenge/CHALLENGEID/respond/”发出 POST 请求来确认质询,其中 CHALLENGEID 与第一个失败的/oauth2/token/POST 请求中提到的 ID 相同。
  • 向“https://api.robinhood.com/oauth2/token/”发出相同的 POST 请求,并在标题“X-ROBINHOOD-CHALLENGE-RESPONSE-ID”中包含值 CHALLENGEID。

  • 即使在注销后,您也可以在此之后使用 user/pass 重用 device_id。
    存储 device_id 时要小心,因为它是用户/密码登录和成功 SMS/电子邮件 2FA 的结果。

    关于api - 既然 Robinhood 再次更改了 API,现在有什么方法可以获得不记名 token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902967/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com