这似乎是一个永无止境的故事,但我无法从 Twitter4J 流 API 访问 Twitter。
- 我创建了一个 Twitter 帐户并将时区更改为我的祖国
- 我在 Twitter 中创建了一个应用
- 我使用 Twitter4J Streaming API 4.0.0 在 Java/Maven 中创建了一个 ClientApp
- 我将 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 ) 丢失或不正确。确保您已设置有效的消费者 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/