2016-09-20 8 views
1

私はTwitter用にFabric SDKを使用しています。これで、私はその文書に記述されているようにログインリクエストを行うことができます。今、私はlistview.Iで、ユーザーとのショーでログインし多くのリンクを試してみましたが、これらのリンクは ファブリックAndroidを使用してTwitterでフォロワーのリストを取得できません

Can't get List of followers in Twitter using Fabric

How to get list of followers using Twitter Fabric Android?

が、私はこれを試した私のために動作しないのフォロワーのリストを取得するためにwan't私はそれを実行するたびに私のアプリがクラッシュした。私は信者を取得することはできませんよ、この方法では

new MyTwitterApiClient(session).getCustomService().show(userID, null, true, true, 100, new Callback<User>() { 
      @Override 
      public void success(Result<User> result) { 
       LogUtils.LOGI("Get success",result.toString()); 
      } 

      @Override 
      public void failure(TwitterException e) { 
       hideProgressDialog(); 
      } 
     }); 

:次のように呼び出され

class MyTwitterApiClient extends TwitterApiClient 
    { 
     public MyTwitterApiClient(TwitterSession session) 
    { 
      super(session); 
     } 

     public CustomService getCustomService() { 
      return getService(CustomService.class); 
     } 

     interface CustomService { 
      @GET("/1.1/followers/list.json") 
      Call<User> show(@Query("user_id") Long userId, @Query("screen_name") String 
         var, @Query("skip_status") Boolean var1, @Query("include_user_entities") Boolean var2, @Query("count") Integer var3, Callback <Followers> cb); 
     } 
    } 

。おかげさまで

答えて

2

更新されたバージョンRetrofit2を使用する必要があります。あなたのGradleファイルに次のコード

書き込み: -

compile 'com.squareup.retrofit2:retrofit:2.1.0'

次のコードを試してみてください。

インタフェース:

public interface TwitterFollowersService { 
    /** 
    * This method id used to get the List of TWITTER FOLLOWERS. 
    * 
    * @param userId Get UserId after login and pass it here 
    * @param var Send Current user screen name 
    * @param var1 Weather to skip status accept TRUE/FALSE 
    * @param var2 Weather to include Entities accept TRUE/FALSE 
    * @param var3 Count to get number of response 
    * @return Call object of type FOLLOWERS. 
    */ 
    @GET("/1.1/followers/list.json") 
    Call<Response> show(@Query("user_id") Long userId, @Query("screen_name") String 
      var, @Query("skip_status") Boolean var1, @Query("include_user_entities") Boolean 
           var2, @Query("count") Integer var3); 

} 

使用しますクラス/アクティビティでこのコード:

private Callback<TwitterSession> authorizeCallback = new Callback<TwitterSession>() { 

    @Override 
    public void success(com.twitter.sdk.android.core.Result<TwitterSession> result) { 

     TwitterSession session = Twitter.getSessionManager().getActiveSession(); 

     if (isNetworkAvailable(this)) { 
      if (session != null) { 
       TwitterApiServices apiclients = new TwitterApiServices(session); 
       Call<Response> call = apiclients.getCustomService().show(result.data.getUserId(), result.data.getUserName(), true, false, 100); 
       call.enqueue(new retrofit2.Callback<Response>() { 
        @Override 
        public void onResponse(Call<Response> call, retrofit2.Response<Response> response) { 
         if (response.body().getUsers().size() > 0) { 

          ArrayList<TwitterFollowersList> twitterFollowersList = new ArrayList<>(); 

          for (int i = 0; i < response.body().getUsers().size(); i++) { 

           TwitterFollowersList twitterFollowers = new TwitterFollowersList(); 

           twitterFollowers.setId(response.body().getUsers().get(i).getId()); 
           twitterFollowers.setName(response.body().getUsers().get(i).getName()); 
           twitterFollowers.setProfile_image_url(response.body().getUsers().get(i).getProfile_image_url()); 

           Log.d("TwitterFollowers", "ID: " + response.body().getUsers().get(i).getId() + " Name: " + response.body().getUsers().get(i).getName() + " ProfileImageURL: " + response.body().getUsers().get(i).getProfile_image_url()); 

           twitterFollowersList.add(twitterFollowers); 
          } 
          //Upload twitter folowers to server. 
          uploadUserTwitterContacts(twitterFollowersList); 
         } 
        } 

        @Override 
        public void onFailure(Call<Response> call, Throwable t) { 
         showToast(this, "Unable to get response. Try Again!!"); 
        } 
       }); 
      } else { 
       showToast(this, getResources().getString(R.string.server_error)); 

      } 
     } else { 
      showToast(this, getResources().getString(R.string.no_internet)); 
     } 
    } 

    @Override 
    public void failure(TwitterException e) { 
     showToast(this, getResources().getString(R.string.server_error)); 

    } 
}; 

応答としてこれらの以下のモデルクラスを使用し、そのゲッターセッターを作る:

1)

public class Response { 

     @SerializedName("users") 
     private List<Users> users; 
     private String next_cursor; 
     private String previous_cursor_str; 
     private String previous_cursor; 
     private String next_cursor_str; 
    } 

2)

public class Users { 
    private String location; 

    private String default_profile; 

    private String profile_background_tile; 

    private String statuses_count; 

    private String live_following; 

    private String lang; 

    private String profile_link_color; 

    private String profile_banner_url; 

    private String id; 

    private String following; 

    private String muting; 

    //private String protected; 

    private String favourites_count; 

    private String profile_text_color; 

    private String description; 

    private String verified; 

    private String contributors_enabled; 

    private String profile_sidebar_border_color; 

    private String name; 

    private String profile_background_color; 

    private String created_at; 

    private String is_translation_enabled; 

    private String default_profile_image; 

    private String followers_count; 

    private String has_extended_profile; 

    private String profile_image_url_https; 

    private String geo_enabled; 

    //private Status status; 

    private String profile_background_image_url; 

    private String profile_background_image_url_https; 

    private String follow_request_sent; 

    //private Entities entities; 

    private String url; 

    private String utc_offset; 

    private String time_zone; 

    private String blocking; 

    private String notifications; 

    private String profile_use_background_image; 

    private String friends_count; 

    private String blocked_by; 

    private String profile_sidebar_fill_color; 

    private String screen_name; 

    private String id_str; 

    private String profile_image_url; 

    private String listed_count; 

    private String is_translator; 
} 

それはあなたを助けることを願っています。 :)

+1

perfect..thanks..itは私の問題を解決し – Rahul

+0

:) また、この受け入れ答えをあきらめる:,, P howz U @RahulAbrol – Namy

関連する問題