永无止境的故事:Twitter身份验证



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

  1. 我创建了一个Twitter帐户,然后将时区更改为我的祖国
  2. 我在Twitter中创建了一个应用
  3. 我在Java/Maven中使用Twitter4J流api 4.0.0
  4. 创建了一个客户端。
  5. 我将Api-Key,Secret-Key和Access-Tokens放在配置构建器中
  6. 我从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)缺失或不正确。确保您设置了有效的消费者密钥/秘密,访问令牌/秘密,并且系统时钟是同步的。

请帮助。

对于清洁和简单,我建议您在 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:您可能需要隐藏应用程序特定键/令牌

最新更新