【问题标题】:Permanent twitter oauth using jtwitter and SignpostClient使用 jtwitter 和 SignpostClient 的永久 twitter oauth
【发布时间】:2026-01-26 04:20:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: java twitter oauth jtwitter


    【解决方案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);
    

    一切都很好。

    【讨论】: