【问题标题】:Fetching user followers list in Twitter在 Twitter 中获取用户关注者列表
【发布时间】:2017-09-08 04:44:45
【问题描述】:

在 twitter 中我们如何获取关注者的数量。我已经通过 twitter 开发人员从那里获得了获取关注者列表的 url。 网址是:GET https://api.twitter.com/1.1/followers/list.json?cursor=-1&screen_name=twitterdev&skip_status=true&include_user_entities=false 我不明白如何在 Android 中获取响应。

【问题讨论】:

    标签: android twitter


    【解决方案1】:
       private void getFollowerList()
    {
        if (!Utils.isInternetOn(InviteFriendActivity.this)){
            Utils.showToast(this,getString(R.string.no_internet));
            return;
        }
        progressDialog.show();
        final TwitterSession session = Twitter.getSessionManager()
                .getActiveSession();
        TwitterAuthToken authToken = session.getAuthToken();
        String token = authToken.token;
        String secret = authToken.secret;
    
    //Here we get all the details of user's twitter account
            Call<com.twitter.sdk.android.core.models.User> userCall= Twitter.getApiClient(session).getAccountService()
                    .verifyCredentials(true, false);
            userCall.enqueue(new Callback<com.twitter.sdk.android.core.models.User>() {
                @Override
                public void onResponse(Call<com.twitter.sdk.android.core.models.User> call, Response<com.twitter.sdk.android.core.models.User> response) {
                    MyTwitterApiClient myTwitterApiClient = new MyTwitterApiClient(session);
                    myTwitterApiClient.getCustomService().list(response.body().id).enqueue(new Callback<ResponseBody>() {
                        @Override
                        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                            Log.e("list",response.body().toString());
                            BufferedReader reader = null;
                            StringBuilder sb = new StringBuilder();
    
                            reader = new BufferedReader(new InputStreamReader(response.body().byteStream()));
    
                            String line;
    
                            try {
                                while ((line = reader.readLine()) != null) {
                                    sb.append(line);
                                }
                            } catch (IOException e) {
                                e.printStackTrace();
                                progressDialog.dismiss();
                            }
    
    
                            String result = sb.toString();
                            System.out.println("Response is>>>>>>>>>"+result);
                            JsonObject obj= new Gson().fromJson(result,JsonObject.class);
                            JsonArray usersArray= (JsonArray) obj.get("users");
                            JsonArray userIds = new JsonArray();
                            for(int i=0;i<usersArray.size();i++){
                                JsonObject userObject = (JsonObject) usersArray.get(i);
                                userIds.add(userObject.get("id_str"));
                            }
                            // Api call with Twitter followers ids
                            JsonObject jsonObject = new JsonObject();
                            jsonObject.add("twitter_ids",userIds);
    
                        }
    
                        @Override
                        public void onFailure(Call<ResponseBody> call, Throwable t) {
                            Utils.showToast(InviteFriendActivity.this,getString(R.string.something_went_wrong));
                            progressDialog.dismiss();
                        }
    
                    });
                }
    
                @Override
                public void onFailure(Call<com.twitter.sdk.android.core.models.User> call, Throwable t) {
                    Utils.showToast(InviteFriendActivity.this,getString(R.string.something_went_wrong));
                    progressDialog.dismiss();
                }
            });
        }
    

    这是获取关注者列表的函数。

    public class MyTwitterApiClient extends TwitterApiClient {
        public MyTwitterApiClient(TwitterSession session) {
            super(session);
        }
    
        /**
         * Provide CustomService with defined endpoints
         */
        public Api getCustomService() {
            return getService(Api.class);
        }
    }
    

    这是 ApiCLientClass

    在这个例子中,只有 ids 存储在 onResponse 方法中 usersArray 将包含所有 userList 以及用户的所有可用数据。 您可以删除并执行您的互联网连接检查并显示我在 Utils 课程中完成的 toast。 而Api类是这样的

        public interface Api {
     @GET("/1.1/followers/list.json")
        Call<ResponseBody> list(@Query("user_id") long id);
    }
    

    【讨论】:

    • 谢谢。帮了大忙
    猜你喜欢
    • 1970-01-01
    • 2013-02-02
    • 2012-07-20
    • 2015-06-20
    • 2014-08-08
    • 2017-10-20
    • 2014-01-06
    • 2015-12-21
    • 1970-01-01
    相关资源
    最近更新 更多