我正在尝试使用twitter4j来获取Twitter用户时间线状态以及有关它们的信息。问题是在twitter中有一些图像附加到某些状态,但twitter4j返回空媒体实体。这是我的代码:
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());
}
我记得,之前我曾经这样使用过:编辑:这只是为了获得1张图像。
for(MediaEntity me : status.getMediaEntities()){
if(me.getMediaURLHttps() != null)//also check blank
twitterImage.add(me.getMediaURLHttps());
}
要获取所有媒体entities(最多4张照片|| 1视频|| 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());
}
}
}