Я хочу получить ретвиты твита и знаю идентификатор твита, но всегда получаю 0 (размер статусов списка всегда равен 0). Я проверил твит, который я ищу, имеет ретвиты, но возврат равен 0. Может ли кто-нибудь сказать, почему? Большое спасибо. Вот мой код:
public class getRetweets {
public static void main(String[] args) {
try {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("key")
.setOAuthConsumerSecret("keysecret")
.setOAuthAccessToken("token")
.setOAuthAccessTokenSecret("tokensecret");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
List<Status> statuses = twitter.getRetweets(Long.parseLong("523516722331271169"));
for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
}
System.out.println("done.");
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to get retweets: " + te.getMessage());
System.exit(-1);
}
}
}
2 ответа
Пожалуйста, сделайте следующее и проверьте, есть ли у вас какие-либо ретвиты для данного tweetID.
Status statusTemp = twitter.showStatus(Long.parseLong("523516722331271169"));
System.out.println(statusTemp.getText());
System.out.println(statusTemp.getRetweetCount());
Вы уверены, что ищете правильный tweetID?
У твита с указанным вами идентификатором 0 ретвитов. Ваш код, кажется, в порядке. Я только что проверил твиты, у которых определенно есть ретвиты.
public void test(){
TwitterFactory tf = new TwitterFactory(conf);
Twitter twitter = tf.getInstance();
Query query = new Query("from:BBCBreaking Lynda Bellingham");
query.setLang("en");
QueryResult result = null;
try {
result = twitter.search(query);
} catch (TwitterException e) {
e.printStackTrace();
}
for(Status status : result.getTweets()){
if(status.getRetweetCount() > 0){
long id = status.getId();
List<Status> statuses = null;
try {
statuses = twitter.getRetweets(id);
} catch (TwitterException e) {
e.printStackTrace();
}
System.out.println("Start Retweet Section------------------");
for (Status retweet : statuses) {
System.out.println("@" + retweet.getUser().getScreenName() + " - " + status.getText());
}
System.out.println("End Retweet Section------------------");
}
}
}
Вывод выглядит следующим образом:
Начать ретвит раздела--------------------------------
@PattenAdam - Линда Беллингем, которая умерла после борьбы с раком...
@brunoappr - Линда Беллингем, которая умерла после борьбы с раком...
@poguesfan4ever — Линда Беллингем, которая умерла после борьбы с раком...
Конец раздела ретвитов--------------------------------
Начать ретвит раздела--------------------------------
@holdbxcktherain — британская актриса и ведущая Линда Беллингхэм, которая болела раком...
@Dusty_Milo — британская актриса и ведущая Линда Беллингхэм, которая болела раком...
@_aaaamy - британская актриса и ведущая Линда Беллингем, у которой был рак...
Конец раздела ретвитов--------------------------------
Похожие вопросы
Новые вопросы
Twitter - это сервис микроблогов, который позволяет пользователям публиковать короткие «твиты» длиной до 280 символов. Они также могут быть опубликованы через его API.
Long.parseLong(....
- вы должны просто передать ей строку "523516722331271169".