2012-03-23 8 views
4

私はTwiitter4jを使ってアンドロイドとのツイッターの統合に取り組んでいます。私はホームタイムラインとそのうまくいっている罰金を取ろうとしています。しかし、私がつぶやきに含まれているURLを取得するために探しているときには機能はありません。などのURLここandroid twitter 4j integration get tweet entities

のようなつぶやきentitesを取得するfunctonは、コード

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); 
    } 

ソニーのコードでうまく動作し、その後、私は非同期タスクに私のコードを移動してきたが、それはいくつかを示しているですここでエラー

あなただけのCREながら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; 
    } 
+0

をエンティティを取得するという目的をating? – MKJParekh

+0

twitter.getHomeTimeline();エラーが表示されます: - タイプの不一致:ResponseList からResponseList

+0

に変換できません。 'ResponseList statuses = twitter.getHomeTimeline(); 'のようになり、AsysncTaskクラスとしてステータスとその取得ステータスにカーソルを置き、代わりにこの' ResponseList statuses = twitter.getHomeTimeline(); ' – MKJParekh

答えて

2

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

ありがとうございます。しかし、非同期タスクdoInBackgroundにコードを移動すると、いくつかのエラーが表示されます。 –

+0

あなたがそれでUI操作をしているかどうかを確認してください。..またはそれがあなたを困らせる場合は、別の質問として質問してください。 – MKJParekh

+0

私は編集としてコードを投稿しました –

関連する問題