我是twitter4j api的新手,有没有办法使用twitter4j获取特定推文的最爱数。我正在使用api版本3.0.3 for Twitter4j。
在文档中,方法getFavoriteCount()
存在,但同样的方法在代码中给出了编译错误。我应该使用不同版本的jar文件吗?
public static void main(String[] args) {
ConfigurationBuilder cb= new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("**************************");
cb.setOAuthConsumerSecret("**************************");
cb.setOAuthAccessToken("*******************************");
cb.setOAuthAccessTokenSecret("*****************************");
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
User user = null;
try {
user = twitter.verifyCredentials();
} catch (TwitterException e1) {
e1.printStackTrace();
}
String[] test = new String[]{"teststr"};
ResponseList<User> users;
try {
users = twitter.lookupUsers(test);
for (User user1 : users) {
if (user1.getStatus() != null)
{
Paging paging = new Paging(1, 40);
ResponseList<Status> statusess = twitter.getUserTimeline(user1.getName(),paging);
for (Status status3 : statusess)
{
long retweetCount = status3.getRetweetCount();
long favoriteCount = status3.getFavoriteCount();/** this line gives compilation error saying the method getFavoriteCount() is undefined for the type Status**/
}
}
}
} catch (TwitterException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
不幸的是,似乎在3.0.4版本旁边链接的Twitter4J网站上的JavaDocs是不正确的。实际文档为here - 您可以看到getFavoriteCount()
不在其中。
Status#getFavoriteCount()
似乎只有introduced in 3.0.4。所以是的,您需要从3.0.3升级才能使用此方法。
虽然知道版本3.0.4目前正处于积极开发状态。
答案 1 :(得分:0)
虽然您已找到并标记了答案,但让我提供切换Twitter4J版本的替代方案。
当使用类似于您使用的方法时,我进行了大量搜索,最后在完全不相关的帖子中找到了解决方案。以下是如何获得最喜欢的推文数量:
注意: 这是我在我的Android应用中使用的内容。
首先,在ConfigurationBuilder cb
实例中,添加以下一行:
cb.setJSONStoreEnabled(true);
这将以JSON格式返回所有结果。奇怪的是,获得JSON结果可以为您提供该值。
现在,要获取推文:
try {
Paging paging = new Paging(initPagingOffset, 200);
statuses = twitter.getHomeTimeline(paging);
String strTweets = DataObjectFactory.getRawJSON(statuses);
JSONArray JATweets = new JSONArray(strTweets);
for (int i = 0; i < JATweets.length(); i++) {
JSONObject JOTweets = JATweets.getJSONObject(i);
..... // PARSE ANY OTHER DATA YOU MIGHT NEED FOR DISPLAYING THE TWEETS
String FAV_COUNT = JOTweet.getString("favorite_count");
}
} catch (TwitterException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}