【发布时间】:2013-08-26 18:58:31
【问题描述】:
我正在使用 Twiitter4j 将 Twitter 与 android 集成。我正在尝试获取主页时间线及其工作正常。但是,当我希望将 url 包含在推文中时,没有任何功能。是否有获取 url 等推文实体的功能。
这里是代码
cb = new ConfigurationBuilder();
cb.setDebugEnabled(true).setOAuthConsumerKey(Constants.CONSUMER_KEY)
.setOAuthConsumerSecret(Constants.CONSUMER_SECRET)
.setOAuthAccessToken(accessToken).setOAuthAccessTokenSecret(
accessSecret);
try {
TwitterFactory factory = new TwitterFactory(cb.build());
// gets Twitter instance with default credentials
Twitter twitter = factory.getInstance();
User user = twitter.verifyCredentials();
List<Status> statuses = twitter.getHomeTimeline();
System.out.println("Showing @" + user.getScreenName() + "'s home timeline.");
for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText() + "--"+status.getURLs()+ "--"+status.getURLEntities());
}
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to get timeline: " + te.getMessage());
System.exit(-1);
}
与 Sony 的代码配合得很好,之后我将代码移动到异步任务,它显示了一些错误
这是我编辑的代码
protected String doInBackground(Void... args) {
String response = null;
try {
TwitterFactory factory = new TwitterFactory(cb.build());
// gets Twitter instance with default credentials
Twitter twitter = factory.getInstance();
User user = twitter.verifyCredentials();
ResponseList<Status> statuses = twitter.getHomeTimeline();
System.out.println("Showing @" + user.getScreenName() + "'s home timeline.");
for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText() + "--"+status.getUser().getProfileImageURL());
URLEntity[] uent = status.getURLEntities();
if (uent != null) {
for (int k = 0; k < uent.length; k++) {
Log.i("URL Entity", "Dp Url " + uent[k].getDisplayURL()
+ " URL " + uent[k].getURL() + " start "
+ uent[k].getStart() + " end "
+ uent[k].getEnd());
}
}
}
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to get timeline: " + te.getMessage());
System.exit(-1);
}
return response;
}
【问题讨论】:
-
twitter.getHomeTimeline();显示错误:- 类型不匹配:无法从 ResponseList
转换为 ResponseList -
ok 转到
ResponseList<Status> statuses = twitter.getHomeTimeline();行,将光标保持在 Status 上,然后将其作为 AsysncTask 类的状态,而不是将其更改为 twitter4j -
喜欢这个
ResponseList<twitter4j.Status> statuses = twitter.getHomeTimeline(); -
太棒了。有用。我没注意到。
标签: java android twitter twitter4j