gpt4 book ai didi

java - 使用 Twitter4J 和 OAuth 访问 Twitter Stream API

转载 作者:行者123 更新时间:2023-11-30 04:02:10 24 4
gpt4 key购买 nike

我想使用 Twitter4J 访问公共(public)流 API 示例。我已在 Twitter 上创建了一个应用程序并生成了相关 key 和 token (使用 Twitter 门户)。

但身份验证始终失败。

这是根据文档的代码。许多现有的论坛帖子已经过时。

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("XXXXX");
cb.setOAuthConsumerSecret("XXXXXXXX");
cb.setOAuthAccessToken("xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxx");
cb.setOAuthAccessTokenSecret("XXXXXXXXXXXXXXXXXXXXXXX");

OAuthAuthorization auth = new OAuthAuthorization(cb.build());
TwitterStreamFactory factory = new TwitterStreamFactory();
this.twitterStream = factory.getInstance(auth);
this.twitterStream.addListener(listener);
this.twitterStream.sample();

我得到的错误是:

401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or         incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the      system clock is in sync.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Error 401 Unauthorized</title>
</head>
<body>
<h2>HTTP ERROR: 401</h2>
<p>Problem accessing '/1.1/statuses/sample.json?stall_warnings=true'. Reason:
<pre> Unauthorized</pre>
</body>
</html>

最佳答案

这就是我验证和接收 twitterstream 所做的事情:

private static  void listen() throws InterruptedException,TwitterException{

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setDebugEnabled(true)
.setOAuthConsumerKey("*************")
.setOAuthConsumerSecret("******************")
.setOAuthAccessToken("*******************")
.setOAuthAccessTokenSecret("************");

Configuration configuration= configurationBuilder.build();
TwitterStream twitterStream = new TwitterStreamFactory(configuration).getInstance();

twitterStream.addListener(new twitter4j.StatusListener() {

public void onStatus(Status status) {
System.out.println("Status: {}"+ status);
}

public void onException(Exception ex) {
System.out.println("Error callback"+ ex);
}

public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {

}

public void onTrackLimitationNotice(int i) {

}

public void onScrubGeo(long l, long l1) {

}

public void onStallWarning(StallWarning stallWarning) {

}

});
twitterStream.sample();
TimeUnit.SECONDS.sleep(10);
twitterStream.shutdown();
}

希望这有帮助。对我来说,关键是创建 TwitterStreamFactory,将配置对象传递给其构造函数。这就是它如何进行身份验证。

关于java - 使用 Twitter4J 和 OAuth 访问 Twitter Stream API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21712493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com