我想获取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]);
答案 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似乎并不清楚。检查它是否在循环之前。