我使用Twiitter4j正在Twitter的整合与Android。我试图获取家庭的时间表和工作的罚款。但是,当我希望得到的网址包含在鸣叫没有的功能。是否有functon获得评论的entites像网址等。
下面是code
CB =新ConfigurationBuilder();
cb.setDebugEnabled(真).setOAuthConsumerKey(Constants.CONSUMER_KEY)
.setOAuthConsumerSecret(Constants.CONSUMER_SECRET)
.setOAuthAccessToken(accessToken).setOAuthAccessTokenSecret(
accessSecret);
尝试 {
TwitterFactory厂=新TwitterFactory(cb.build());
//获取Twitter的情况下使用默认凭据
叽叽喳喳叽叽喳喳= factory.getInstance();
用户USER = twitter.verifyCredentials();
名单<状态>状态= twitter.getHomeTimeline();
的System.out.println(显示@+ user.getScreenName()+家时间表。);
对于(状态状态:状态){
的System.out.println(@+ status.getUser()getScreenName()+ - + status.getText()+ - + status.getURLs()+ - + status.getURLEntities( ));
}
}赶上(TwitterException TE){
te.printStackTrace();
的System.out.println(无法获得时间表:+ te.getMessage());
System.exit(-1);
}
与索尼的code运作良好,并在那之后我提出我的code到异步任务,它显示了一些错误
下面是我的编辑code
保护字符串doInBackground(无效参数... args){
串响应=无效;
尝试 {
TwitterFactory厂=新TwitterFactory(cb.build());
//获取Twitter的情况下使用默认凭据
叽叽喳喳叽叽喳喳= factory.getInstance();
用户USER = twitter.verifyCredentials();
ResponseList<状态>状态= twitter.getHomeTimeline();
的System.out.println(显示@+ user.getScreenName()+家时间表。);
对于(状态状态:状态){
的System.out.println(@+ status.getUser()getScreenName()+ - + status.getText()+ - + status.getUser()getProfileImageURL());
URLEntity [] uent = status.getURLEntities();
如果(uent!= NULL){
对于(INT K = 0; K< uent.length; k ++){
Log.i(URL实体,DP地址+ uent [K] .getDisplayURL()
+网址+ uent [k]的.getURL()+开始
+ uent [K] .getStart()+端
+ uent [k]的.getEnd());
}
}
}
}赶上(TwitterException TE){
te.printStackTrace();
的System.out.println(无法获得时间表:+ te.getMessage());
System.exit(-1);
}
返回响应;
}
解决方案
您只需要添加更多的线,而创建 ConfigurationBuilder
cb.setIncludeEntitiesEnabled(真);
(提示下一个code 的),您将得到实体的话,
ResponseList<状态>表= twitter.getHomeTimeline();
URLEntity [] uent = list.get(0).getURLEntities();
如果(uent!= NULL){
对于(INT K = 0; K< uent.length; k ++){
Log.i(URL实体,DP地址+ uent [K] .getDisplayURL()
+网址+ uent [k]的.getURL()+开始
+ uent [K] .getStart()+端
+ uent [k]的.getEnd());
}
}
I am working on twitter integration with android using Twiitter4j. I am trying to fetch Home timelines and its working fine. But when i am looking to get urls included in the tweets there is no functions. Is there a functon to get tweet entites like urls etc.
Here is the code
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);
}
Works well with Sony's code and after that i have moved my code to async task and it shows some errors
Here is my edited code
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;
}
解决方案
You just need to add one more line while creating object of ConfigurationBuilder
cb.setIncludeEntitiesEnabled(true);
(Hint for the next code)And you will get the Entities then,
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());
}
}