Java 使用jtwitter和SignpostClient的永久twitter oauth

Java 使用jtwitter和SignpostClient的永久twitter oauth,java,twitter,oauth,jtwitter,Java,Twitter,Oauth,Jtwitter,我有一个在服务器上运行的应用程序,使用流api监听各种tweet,然后偶尔发送tweet。使用旧的twitter身份验证系统可以很好地工作,但是使用OAuth有点复杂 我可以成功启动应用程序,我的浏览器打开Twitter的OAuth页面。如果我输入PIN,应用程序运行正常,但我需要能够在无人参与的情况下重新启动应用程序。Twitter的OAuth FAQ说令牌永远不会过期,所以我想做的是在每次应用程序启动时重新使用授权令牌 我该怎么做?还是有其他方法只授权一次?我将回答我自己的问题,因为解决方案

我有一个在服务器上运行的应用程序,使用流api监听各种tweet,然后偶尔发送tweet。使用旧的twitter身份验证系统可以很好地工作,但是使用OAuth有点复杂

我可以成功启动应用程序,我的浏览器打开Twitter的OAuth页面。如果我输入PIN,应用程序运行正常,但我需要能够在无人参与的情况下重新启动应用程序。Twitter的OAuth FAQ说令牌永远不会过期,所以我想做的是在每次应用程序启动时重新使用授权令牌


我该怎么做?还是有其他方法只授权一次?

我将回答我自己的问题,因为解决方案非常简单

如本页所述,如果您正在使用单用户用例构建应用程序,您可以从Twitter上的应用程序控制面板检索永久访问令牌和访问令牌机密。在“应用程序详细信息”页面中,单击“我的访问令牌”链接

通过阅读OAuthSignPostClient类,我注意到默认的jtwitter实现使用以下方法签名:

    public OAuthSignpostClient(String consumerKey, String consumerSecret, 
String callbackUrl)
但也可以使用以下方法调用:

public OAuthSignpostClient(String consumerKey, String consumerSecret, 
            String accessToken, String accessTokenSecret) 
因此,我的客户端应用程序代码已从:

    OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, "oob");
致:

一切都很好

    OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, MY_ACCESS_TOKEN, MY_ACCESS_TOKEN_SECRET);