2010-09-01 83 views
0

我有一个应用程序在服务器上运行,使用流api侦听各种tweets,然后偶尔发送推文。这使用旧的Twitter认证系统很好,但使用OAuth有点复杂。永久twitter oauth使用jtwitter和SignpostClient

我可以成功启动应用程序,并且我的浏览器打开Twitter的OAuth页面。如果我输入PIN码,应用程序运行良好,但我需要能够无人值守地重新启动应用程序。 Twitter的OAuth常见问题解答http://dev.twitter.com/pages/oauth_faq表示令牌永不过期,所以我想要在每次应用程序启动时重新使用授权令牌。

我该怎么做?还是有另一种方法来授权一次?

回答

1

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

如本页所述http://dev.twitter.com/pages/oauth_single_token如果您使用单用户用例构建应用程序,则可以从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); 

而且一切都很好。