【发布时间】:2014-02-11 08:42:26
【问题描述】:
我有一个推文列表,其中包含我用于本科研究项目的推文用户的信息。要构建这些推文的社交网络图,我需要获取他们的朋友和关注者列表。我已经尝试通过 twitter4j 平台使用 GET Follower IDs 调用。我的身份验证是带有读取、写入和直接消息的 Oauth。我得到一个 400 响应代码,没有进一步的错误代码。我还得到以下异常代码
exceptionCode=[92c30ec6-19bed99c 70a5018f-1e1c55ac 70a5018f-1e1c55aa], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.3}
这告诉我,我没有通过身份验证来提出这个请求,据我所知,这是因为人们不是我的追随者。有没有一种方法可以在不与用户建立这种关系的情况下请求这些信息?
这是我的代码
public static void main (String[] args){
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("something")
.setOAuthConsumerSecret("something else")
.setOAuthAccessToken("another thing")
.setOAuthAccessTokenSecret("a secret thing")
.setUseSSL(true)
.setUserStreamRepliesAllEnabled(true);
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
long cursor = -1;
IDs ids = null;
String[] users = new String[16717];
BufferedReader br = null;
try {//getting user screen names
String sCurrentLine;
br = new BufferedReader(new FileReader("users.txt"));
int i = 0;
while ((sCurrentLine = br.readLine()) != null) {
users[i]=sCurrentLine;
i++;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
for(int i=0;i<users.length;i++){
System.out.println("==================="+users[i]+"===================");
do {
try {
ids = twitter.getFollowersIDs(users[i], cursor);
for (long id : ids.getIDs()) {
System.out.println(id);
User user = twitter.showUser(id);
System.out.println(user.getName());
}
} catch (TwitterException e) {
e.printStackTrace();
}
} while ((cursor = ids.getNextCursor()) != 0);
}
}
【问题讨论】:
标签: twitter twitter-oauth twitter4j