Android Can';t获取twitter用户';通过TwitterAPI的用户数量

Android Can';t获取twitter用户';通过TwitterAPI的用户数量,android,rest,twitter,twitter-fabric,Android,Rest,Twitter,Twitter Fabric,我很难获得twitter用户的粉丝数量 我确实遵循了TwitterRESTAPI文档,但找不到问题的答案。我通过他们的RESTAPI成功地进行了调用,并且得到了一个“成功”的回调,但我不知道如何解析我的响应。他们的文档一直在说“它返回一个“ID集合”。所以我假设我可以将响应解析为一个ID列表(List),但这会导致gson解析错误。我可以成功地将其解析为一个JSONOBject,但结果是空的 以下是相关代码: package com.boomer.omer.kollabstr.backend.t

我很难获得twitter用户的粉丝数量

我确实遵循了TwitterRESTAPI文档,但找不到问题的答案。我通过他们的RESTAPI成功地进行了调用,并且得到了一个“成功”的回调,但我不知道如何解析我的响应。他们的文档一直在说“它返回一个“ID集合”。所以我假设我可以将响应解析为一个ID列表(List),但这会导致gson解析错误。我可以成功地将其解析为一个JSONOBject,但结果是空的

以下是相关代码:

package com.boomer.omer.kollabstr.backend.twitteroauth;
导入com.twitter.sdk.android.core.models.User

import org.json.JSONObject;

import java.util.List;

import retrofit.Callback;
import retrofit.http.GET;
import retrofit.http.Query;


    public interface TwitterGetFollowerCountApiClient {

         @GET("/1.1/followers/ids.json")
        void getFollowerCount(@Query("user_id")Long id,
                          @Query("screen_name")String screenname,
                          @Query("cursor")Long cursor,
                          @Query("stringify_ids")Boolean sids,
                          @Query("count")Long count,
                          Callback<JSONObject> users);
}
import org.json.JSONObject;
导入java.util.List;
进口改装.回收;
导入reformation.http.GET;
导入reformation.http.Query;
公共接口TwitterGetFollowerCountApiClient{
@GET(“/1.1/followers/ids.json”)
void getFollowerCount(@Query(“user_id”)长id,
@查询(“屏幕名称”)字符串屏幕名称,
@查询(“游标”)长游标,
@查询(“stringify_id”)布尔SID,
@查询(“计数”)长计数,
回调用户);
}
然后我从以下地址发送/处理请求:

 private void createSocialMediaObject(final TwitterSession twitterSession){
    getKollabstrTwitterApiClient().getFollowerCountService().
            getFollowerCount(twitterSession.getUserId(),
                    null,
                    null,
                    null,
                    null,
                    new Callback<JSONObject>() {
                @Override
                public void success(Result<JSONObject> result) {
                    SocialMedia twitter = new SocialMedia();
                    twitter.setUsername(twitterSession.getUserName());
                    twitter.setUserid(Long.toString(twitterSession.getUserId()));
                    twitter.setSocialMediaType(SocialMediaType.TWITTER);
                    //twitter.setImpact(result.data.size());
                   // Log.d(TAG,"FOLLOWERS:" + Integer.toString(result.data.size()));
                    Users user = SessionManager.getInstance().getCurrentUser();
                    user.getProfile().getSocialMediaAccounts().add(twitter);
                    SessionManager.getInstance().updateUser(user);
                    Log.d("FOLLOWER",Integer.toString(result.data.length()));
                }

                @Override
                public void failure(TwitterException exception) {
                    Log.d(TAG,"FOLLOWER ERROR:" + exception.toString());

                }
            });



}
private void createSocialMediaObject(最终TwitterSession TwitterSession){
GetKollabstrTwitterAppClient().getFollowerCountService()。
getFollowerCount(twitterSession.getUserId(),
无效的
无效的
无效的
无效的
新回调函数(){
@凌驾
公开作废成功(结果){
社交媒体推特=新社交媒体();
setUsername(twitterSession.getUserName());
setUserid(Long.toString(twitterSession.getUserId());
setSocialMediaType(SocialMediaType.twitter);
//setImpact(result.data.size());
//Log.d(标记“FOLLOWERS:+Integer.toString(result.data.size()));
Users user=SessionManager.getInstance().getCurrentUser();
user.getProfile().getSocialMediaAccounts().add(twitter);
SessionManager.getInstance().updateUser(用户);
Log.d(“FOLLOWER”,Integer.toString(result.data.length());
}
@凌驾
公共无效失败(TwitterException异常){
Log.d(标记“followererror:+exception.toString());
}
});
}
我遵循了他们的文档:

我想得到一个ID列表,这样我就可以得到它的大小,根据他们的页面应该是跟随者的数量。但是,即使我可以得到一个成功回调(我假设这表明一个成功的查询正在进行),我也无法弄清楚响应应该被解析成什么


非常感谢您的帮助。请不要简单地让我参考其他库来完成这项工作。

请尝试我在一些项目中使用的代码,以实现Twitter集成:

Twitter4j设置

下载库(jar文件),将以下内容添加到您的libs文件夹中,然后从libs文件夹中右键单击它们,将其添加到添加为库。这意味着您的build.gradle文件将如下所示:

dependencies{

   ...
   compile files('libs/twitter4j-async-4.0.4.jar')
   compile files('libs/twitter4j-core-4.0.4.jar')
}
现在,您已经准备好使用此库连接Twitter

假设:您已经在Twitter上的开发者帐户上创建了一个Twitter应用程序

接下来,不管您希望如何执行请求(异步任务、服务等):

//此示例代码搜索twitter帐户
//剩下的代码在这里
@凌驾
受保护的响应列表doInBackground(字符串…参数){
字符串location=“堪萨斯城”;
试一试{
//mTwitter是您的Twitter实例!
返回mTwitter.searchUsers(位置,20);
}捕获(twitter异常){
e、 getMessage();
}
返回null;
}
@凌驾
受保护的void onPostExecute(响应列表响应){
if(响应!=null){
进步。解散();
if(response.size()==0){
//你没有得到任何结果;零
}否则{
//您可以循环浏览响应列表
用户u=响应。获取(0);
Log.i(“USERCOUNT”,“COUNT:+u.getFollowersCount());
}
}
}
因此,您可以使用此库快速获得结果


我希望这对您有所帮助,如果您需要进一步的帮助,请告诉我!

请尝试我在一些项目中使用的代码,以实现Twitter集成:

Twitter4j设置

下载库(jar文件),将以下内容添加到您的libs文件夹中,然后从libs文件夹中右键单击它们,将其添加到添加为库。这意味着您的build.gradle文件将如下所示:

dependencies{

   ...
   compile files('libs/twitter4j-async-4.0.4.jar')
   compile files('libs/twitter4j-core-4.0.4.jar')
}
现在,您已经准备好使用此库连接Twitter

假设:您已经在Twitter上的开发者帐户上创建了一个Twitter应用程序

接下来,不管您希望如何执行请求(异步任务、服务等):

//此示例代码搜索twitter帐户
//剩下的代码在这里
@凌驾
受保护的响应列表doInBackground(字符串…参数){
字符串location=“堪萨斯城”;
试一试{
//mTwitter是您的Twitter实例!
返回mTwitter.searchUsers(位置,20);
}捕获(twitter异常){
e、 getMessage();
}
返回null;
}
@凌驾
受保护的void onPostExecute(响应列表响应){
if(响应!=null){
进步。解散();
if(response.size()==0){
//你没有得到任何结果;零
}否则{
//您可以循环浏览响应列表
 public JSONObject responseToJSON(Response response){
    BufferedReader reader = null;
    StringBuilder sb = new StringBuilder();
    JSONObject jsonObject = null;
    try {

        reader = new BufferedReader(new InputStreamReader(response.getBody().in()));

        String line;

        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }


    String result = sb.toString();

    try {jsonObject=new JSONObject(result);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    return  jsonObject;
}