我想在Android中获取Twitter关注者和关注列表但是获得NullPointer

时间:2012-02-29 14:58:22

标签: android twitter twitter-oauth twitter4j

我想获取Twitter关注者用户列表,说明为什么我使用以下代码但在for (User user : followers)上提供NullPointer并在此处查看此链接http://grepcode.com/file/repo1.maven.org/maven2/org.twitter4j/twitter4j-examples/2.2.4/twitter4j/examples/list/GetAllUserLists.java,他们引导了如何使用Java获取用户{{1在这个链接中什么是arg [0]按方法http://twitter4j.org/ja/javadoc/twitter4j/api/ListMethods.html请指导我解决我的问题。

ResponseList<UserList> lists = twitter.getAllUserLists(args[0]);

2 个答案:

答案 0 :(得分:4)

据我所知,Twiiter已经更新了他们的api,现在他们支持oauth 2.0机制来检索任何信息。

要检索关注者,您应该使用以下链接 https://dev.twitter.com/docs/api/1/get/followers/ids 你可以使用Twitter4j库的java / android http://twitter4j.org/en/index.html

private void twitter_req()
{

        String access_token = prefs.getString("twitter_token", null);
        String access_secret = prefs.getString("twitter_secret", null);

              twitter_api lapi=new twitter_api(access_token,access_secret,new GetUserInfo_TWRequestCallback());
                lapi.get("api.twitter.com/1/followers/ids.json ");

}
public void get() {
        try {
                HttpGet httpRequest = new HttpGet(mUrl);
                sign(httpRequest);
                sendSync(httpRequest);
        } catch(Exception e) {
                Log.d(" get()", e.toString());
                doFailCallback();
        }
}
private void sendSync(HttpRequestBase httpRequest)
{

            HttpClient httpClient = new DefaultHttpClient();
            HttpResponse httpResponse = httpClient.execute(httpRequest);
            StatusLine statusLine = httpResponse.getStatusLine();
            HttpEntity entity = httpResponse.getEntity();
            //

            //
            response = "null";
            if (entity != null) {
                response = getResponseFromStream(entity.getContent());  //
            }
}
public void sign(HttpRequestBase httpRequest) throws OAuthMessageSignerException, OAuthExpectationFailedException {
       // MSOAuth oauth = MSOAuth.init(mSession);
       // oauth.sign(httpRequest);
         try {
        consumer.sign(httpRequest);
        } catch (OAuthCommunicationException e) {
            response="errorsign";
            if(e!=null)
                if(e.getMessage()!=null)
                {
                    response=e.getMessage();
                }
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
}

答案 1 :(得分:0)

我不知道API,但根据javadoc,返回的列表是否为null似乎并不清楚。检查它是否在循环之前。