I am trying to use twitter4j to get twitter user timeline statuses and the information about them. The problem is that in twitter there are images attached to some of the statuses but twitter4j returns empty media entities. Here is my code:
for (Status status : twStatuses) {
String Iurl = status.getUser().getProfileImageURL();
twitterLink.add("https://twitter.com/" + status.getUser().getScreenName() + "/status/" + status.getId());
twitterText.add(status.getText());
ExtendedMediaEntity[] media = status.getExtendedMediaEntities(); //get the media entities from the status
if (media.length == 0) {
twitterImage.add("0");
} else {
for (ExtendedMediaEntity mediaEntity : media) {
if (mediaEntity.getMediaURL().equals("")) {
twitterImage.add("0");
} else {
twitterImage.add(mediaEntity.getMediaURL());
}
}
}
twitterDate.add(status.getCreatedAt().toString());
}
I remember, I used it like this before: edit:This was for getting 1 image only.
for(MediaEntity me : status.getMediaEntities()){
if(me.getMediaURLHttps() != null)//also check blank
twitterImage.add(me.getMediaURLHttps());
}
To fetch all media entities(maximum 4 photos || 1 video || 1 GIF)
Twitter twitter = TwitterFactory.getSingleton();
List < Status > statuses = twitter.getHomeTimeline();
for (Status status: statuses) {
ExtendedMediaEntity[] extendedMediaEntities = status.getExtendedMediaEntities();
for (ExtendedMediaEntity eme: extendedMediaEntities) {
if (eme.getMediaURLHttps() != null) { //also check blank
if (eme.getType.equals("photo"))
twitterImage.add(me.getMediaURLHttps());
}
}
}