Jak wyszukiwać tweety za pomocą twittera API 1.1 i java
Zmieniono API Twittera z 1.0 na 1.1. Teraz dla każdego typu zapytania musi być autoryzowane. Używam Java do pobierania tweetów. Czy ktoś może podać mi przykład java pobierania tweetów przy użyciu uwierzytelniania OAuth.
AktualizacjaKorzystanie z twitter4j api jest możliwe.http://twitter4j.org/en/. Przykład podano poniżej
Twitter twitter = new TwitterFactory().getInstance();
AccessToken accessToken = new AccessToken("Your-Access-Token", "Your-Access-Token-Secret");
twitter.setOAuthConsumer("Consumer-Key", "Consumer-Key-Secret");
twitter.setOAuthAccessToken(accessToken);
try {
Query query = new Query("#IPL");
QueryResult result;
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
}
}
catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
Problemy tutajTen przykład działa niezależnie, gdy pracowałem jako klasa Java. Ale kiedy dodam ten kod w JSP do testowania w aplikacji internetowej, nie działa. Pokazuje mi następujący wyjątek
SEVERE: Servlet.service() for servlet [jsp] in context with path [/mypub] threw exception [java.lang.IllegalStateException: consumer key/secret pair already set.] with root cause
java.lang.IllegalStateException: consumer key/secret pair already set.
at twitter4j.TwitterBaseImpl.setOAuthConsumer(TwitterBaseImpl.java:264)
at com.me.framework.tag.core.TweetFetch.doTag(TweetFetch.java:50)
at org.apache.jsp.template.test_jsp._jspx_meth_wf_002dcore_005ftweetFetch_005f0(test_jsp.java:100)
at org.apache.jsp.template.test_jsp._jspService(test_jsp.java:74)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)