You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Robin-stocks库Robinhood MFA认证失效,登录触发KeyError: 'detail'

Robin-stocks库Robinhood MFA认证失效,登录触发KeyError: 'detail'

我最近也碰到了一模一样的问题!看来不是你一个人遇到这个情况,不少使用robin-stocks的开发者都在反馈12月中旬开始的这个登录故障。

问题根源分析

从你提供的报错信息和返回的data内容来看,核心问题是Robinhood的认证API返回结构发生了变更:

  • 原来的登录逻辑会尝试从接口返回的data中读取'detail'字段抛出异常,但现在接口返回的是包含verification_workflow的对象,完全没有'detail'字段,直接导致了KeyError。
  • 你怀疑的client_id问题确实有很大可能——Robinhood经常会限制旧的第三方客户端ID,原来库中内置的c82SH0WZOsabOXGP2sxqcj34FxkvfnWRZBKlBjFS可能已经被官方禁用,无法再通过该ID发起认证请求。

可行的解决方向

  • 优先升级robin-stocks库:很多时候这种API变更,库的维护者会快速跟进修复。执行以下命令升级到最新版本:
    pip install --upgrade robin-stocks
    
  • 替换合法的client_id:如果升级后问题依旧,你可以通过抓包Robinhood官方APP的登录请求,获取当前官方使用的有效client_id,替换掉authentication.py中payload里的旧ID。
  • 临时修复KeyError问题:可以先修改本地库的authentication.py文件,避免直接因缺失'detail'字段崩溃,同时添加对新返回结构的判断:
    # 找到原代码中的raise Exception(data['detail'])部分,替换为:
    if 'detail' in data:
        raise Exception(data['detail'])
    elif 'verification_workflow' in data:
        raise Exception(f"需要完成额外验证流程,Workflow ID: {data['verification_workflow']['id']}")
    else:
        raise Exception(f"登录失败,未知响应内容: {str(data)}")
    
  • 适配新的验证流程:返回的verification_workflow说明现在需要完成额外的验证步骤(比如邮件/短信验证),原来直接传MFA code的方式已经不适用。你需要根据返回的workflow信息,调用对应的接口完成验证后,再继续登录流程。

备注:内容来源于stack exchange,提问作者emmanuelsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 18:07:59