android twitter 4j整合获取推文实体
我正在与使用Twiitter4j的android整合twitter。我正在尝试获取主页时间表并且工作正常。但是当我正在寻找包含在推文中的网址时,没有功能。是否有functon获得评论的entites像URL等android twitter 4j整合获取推文实体
这里是代码
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);
}
与索尼的代码工作得很好,之后我提出我的代码以异步任务,它显示了一些错误
这是我编辑的代码
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;
}
你只需要添加,而CRE下一行ConfigurationBuilder
cb.setIncludeEntitiesEnabled(true);
的阿婷对象(提示下一个代码),您将得到实体然后,
ResponseList<Status> list = twitter.getHomeTimeline();
URLEntity[] uent = list.get(0).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());
}
}
谢谢。但是当我将代码移动到异步任务doInBackground时,它显示一些错误。 – 2012-03-23 07:05:01
检查你是否在做任何UI操作?或者如果它让你更麻烦..然后问作为单独的问题。 – MKJParekh 2012-03-23 07:07:18
我已经发布代码作为编辑 – 2012-03-23 07:12:52
为您提供了错误,行? – MKJParekh 2012-03-23 07:15:27
twitter.getHomeTimeline();显示错误: - 类型不匹配:无法从ResponseList转换为ResponseList –
2012-03-23 07:15:52
确定转到行'ResponseList statuses = twitter.getHomeTimeline(); '那里保持光标状态和其作为AsysncTask类的状态,而不是像这样''ResponseList status = twitter.getHomeTimeline();' –
MKJParekh
2012-03-23 07:18:12