使用jtwitter和SignpostClient的永久twitter oauth

时间:2010-09-01 17:11:12

标签: java twitter oauth jtwitter

我有一个在服务器上运行的应用程序,使用流式api侦听各种推文,然后偶尔发送推文。这使用旧的twitter身份验证系统工作正常,但使用OAuth有点复杂。

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

我该怎么做?或者还有另一种授权方式吗?

1 个答案:

答案 0 :(得分: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);

一切都很好。