2012-03-23 5 views
4

Я работаю над интеграцией twitter с android, используя Twiitter4j. Я пытаюсь найти временные рамки для дома и его работу. Но когда я ищу, чтобы получить URL-адреса, включенные в твиты, нет никаких функций. Есть ли functon получить ЧИРИКНУТЬ entites как URLs и т.д.android twitter 4j integration получить чириканье сущностей

Вот код

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; 
    } 
+0

, какая линия дает вам ошибки? – MKJParekh

+0

twitter.getHomeTimeline(); показывает ошибку: - Несоответствие типа: невозможно преобразовать из ResponseList в ResponseList

+0

ok перейти к строке 'ResponseList statuses = twitter.getHomeTimeline(); 'и продолжайте курсор по статусу, и его принятое состояние как класс AsysncTask скорее измените его на twitter4j – MKJParekh

ответ

2

Вам просто нужно добавить еще одну строку whil е создание объект ConfigurationBuilder

cb.setIncludeEntitiesEnabled(true);

(Подсказка для следующего кода), и вы получите Entities тогда,

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()); 
        } 
} 
+0

спасибо. Но когда я перемещаю свой код в async-задачу doInBackground, он показывает некоторые ошибки. –

+0

проверьте, выполняете ли вы какую-либо операцию пользовательского интерфейса в этом или нет? .. или если это беспокоит вас больше. Затем спросите как отдельный вопрос. – MKJParekh

+0

Я опубликовал код как отредактировать –

Смежные вопросы