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


我创建了一个Twitter帐户,并将时区更改为我的祖国
我在Twitter上创建了一个应用程序
我使用Twitter4J Streaming API 4.0.0在Java / Maven中创建了ClientApp
我将Api密钥,秘密密钥和访问令牌放置在配置生成器中
我从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文件中(在build部分中)添加以下代码:

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


PS:您可能想隐藏应用程序特定的键/令牌

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

10-15 19:05