0

我有一个在服务器上运行的应用程序,使用流 api 监听各种推文,然后偶尔发送推文。使用旧的 twitter 身份验证系统可以正常工作,但使用 OAuth 会使事情变得有些复杂。

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

我怎样才能做到这一点?还是有其他方法可以只授权一次?

4

1 回答 1

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);

一切都很好。

于 2010-09-01T18:02:32.830 回答