这似乎是一个永无止境的故事,但是我无法从Twitter4J流API访问Twitter。
- 我创建了一个Twitter帐户,然后将时区更改为我的祖国
- 我在Twitter中创建了一个应用
- 我在Java/Maven中使用Twitter4J流api 4.0.0 创建了一个客户端。
- 我将Api-Key,Secret-Key和Access-Tokens放在配置构建器中
我从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:您可能需要隐藏应用程序特定键/令牌