2016-09-20 3 views
1

트위터 용 Fabric SDK를 사용 중입니다. 이 문서에서 설명하는대로 로그인 요청을 할 수 있습니다. 지금은 listview.I에서 사용자와 쇼에 기록 된 많은 링크를 시도했지만이 링크가 패브릭 안드로이드를 사용하여 트위터에서 팔로어 목록을 얻을 수 없습니다.

Can't get List of followers in Twitter using Fabric

How to get list of followers using Twitter Fabric Android?

다음 내가이 시도 나를 위해 작동하지의 추종자의 목록을 얻을 wan't 코드를 실행하지만 매번 앱을 실행할 때마다 내 앱이 다운되었습니다. 이런 식으로 호출

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

:

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

이 방법으로 나는 추종자를 얻을 수 없습니다입니다. 감사합니다. .

답변

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