java - 永无止境的故事: Twitter Authentication

标签 java twitter oauth authorization twitter4j

这似乎是一个永无止境的故事,但我无法从 Twitter4J 流 API 访问 Twitter。

  1. 我创建了一个 Twitter 帐户并将时区更改为我的祖国
  2. 我在 Twitter 中创建了一个应用
  3. 我使用 Twitter4J Streaming API 4.0.0 在 Java/Maven 中创建了一个 ClientApp
  4. 我将 Api-Key、Secret-Key 和 Access-Tokens 放置在配置生成器中
  5. 我从 Twitter 收到异常

    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true);
    cb.setOAuthConsumerKey("xxxxxxxxxx");
    cb.setOAuthConsumerSecret("xxxxxxxxxxx");
    cb.setOAuthAccessToken("xxxxxxxxxxxxx");
    cb.setOAuthAccessTokenSecret("xxxxxxxxxxxx");
    
    TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
    
    StatusListnerImpl statusListenerImpl = new StatusListnerImpl();
    
    twitterStream.addListener(statusListenerImpl);
    
    twitterStream.sample();
    

401:身份验证凭据 ( https://dev.twitter.com/pages/auth ) 丢失或不正确。确保您已设置有效的消费者 key / secret 、访问 token / secret ,并且系统时钟同步。

请帮忙。

最佳答案

为了干净和简单,我建议在 project_name/resources/twitter4j.properties 下创建一个单独的文件,内容如下:

debug=true
##Get the following from https://dev.twitter.com/
oauth.consumerKey=XXX
oauth.consumerSecret=XXX
oauth.accessToken=XXX
oauth.accessTokenSecret=XXX

然后您可以创建一个新的 TwitterStream 对象,如下所示:

TwitterStream twitterStream = new TwitterStreamFactory().getInstance();

只需确保属性文件在编译时可用。 由于您使用的是 Maven,因此在 pom.xml 文件(在构建部分)中添加以下代码:

        <resources>
            <resource>
                <directory>${basedir}/resources</directory>
            </resource>
        </resources>

PS:您可能想隐藏应用程序特定的 key / token

关于java - 永无止境的故事: Twitter Authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795505/

相关文章:

html - 如何使 Twitter 嵌入页面居中?

Twitter REST API : How to get all the users not following back?

android - 如何在 Android 中获取 Facebook OAuth 授权码

Java 原因 : actual and formal argument lists differ in length

java - 正则表达式拆分 - 但包括换行符 - 包括 CR LF

Java游戏引擎,编写自己的脚本语言?

javascript - 使用ajax识别400请求

security - Java EE 6 App不同的登录方法

android - CakePHP 2.0 和移动应用程序身份验证

java - 在 jfreechart TimeSeriesCollection 中如何显示仅具有值的日期?