Java TD Ameritrade API是否必须使用刷新令牌?

Java TD Ameritrade API是否必须使用刷新令牌?,java,ameritrade,Java,Ameritrade,我正在尝试使用TD Ameritrade的这个Java库 这是开始代码 Properties props = new Properties(); props.setProperty("tda.client_id", "XXX@AMER.OAUTHAP"); // I have this props.setProperty("tda.token.refresh", "XXX"); // I

我正在尝试使用TD Ameritrade的这个Java库

这是开始代码

    Properties props = new Properties();
    props.setProperty("tda.client_id", "XXX@AMER.OAUTHAP"); // I have this 
    props.setProperty("tda.token.refresh", "XXX");  // I don't have this 
我有一个
客户id
,也称为
消费者密钥

但我没有刷新令牌。我只想使用报价API,我不想进行任何实际交易。我可以在这里测试
消费者密钥
,效果非常好。我也必须获得刷新令牌吗?它是强制性的吗?有没有办法只使用
消费者密钥
,而不使用
刷新令牌


这里说“授权令牌,又称刷新令牌,是可选的”,所以它真的是“可选的”

据我所知,如果你有令牌,你会得到更多最新的报价。如果不这样做,您将获得延迟数据:

传递您的OAuth用户ID以发出未经验证的请求 延迟的数据

如果您想要更多实时数据(我没有Ameritrade帐户,不确定延迟差异到底是多少),您可以使用令牌:

可选)验证请求的授权令牌不是 对于未经身份验证的请求,需要

(未经认证的请求为上述延迟路由)

或者,如果您想要刷新令牌,该令牌每90天过期一次,并用于获取访问令牌(每30分钟过期一次),请执行以下步骤:

这将给你一个刷新令牌,你可以使用90天来更新它 请求访问令牌并允许您在无需验证的情况下进行身份验证 服务器。请注意,您需要在更新应用程序的刷新令牌 至少每90天一次,以保持其功能

再说一次,我没有TD Ameritrade账户来亲自确认这一点,但看起来您至少有两种选择来获取报价

更多常见问题解答资源: