如何从Twitter列表中获取所有成员用户名

时间:2018-04-17 10:08:29

标签: java exception twitter twitter4j endpoint

我正在尝试从Twitter中的列表(组)中获取所有成员名称。我使用以下代码 - 但不知道为什么我收到错误。例如,我有兴趣从以下链接获取所有成员 - https://twitter.com/journalismnews/lists/uk-national-journalists?lang=en

在这种情况下,所有者名称是newsismnews和slug(名单名称)是英国国家记者。

我收到一条错误消息"线程中的异常" main" 404:请求的URI无效或请求的资源(例如用户)不存在。当请求的方法不支持请求的格式时,也会返回。 消息 - 抱歉,该页面不存在。 代码 - 34"。

以下是我的代码:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;

import twitter4j.*;
import twitter4j.conf.*;

public class TweetExtractAllUsersfromTwitterGroup {

public static void main(String[] a) throws IOException, TwitterException {
    ConfigurationBuilder cb= new ConfigurationBuilder ();
    cb.setDebugEnabled(true)
    .setOAuthConsumerKey("XXX")
    .setOAuthConsumerSecret("XXX")
    .setOAuthAccessToken("XXX")
    .setOAuthAccessTokenSecret("XXX");
    Twitter twitter = new TwitterFactory(cb.build()).getInstance();
    String trgt="C:\\Twitter data\\usernames.csv";
    String ownerScreenName="journalismnews";
    String slug="uk_national_journalists"; //list name
    Set<String> members=new HashSet<String>();
    long cursor = -1;
    PagableResponseList<User> membes;
    do {    
        membes = twitter.getUserListMembers(ownerScreenName,slug,cursor);
        for (User mem : membes) {
            members.add(mem.getScreenName());
            System.out.println(mem.getScreenName());
        }
    } while ((cursor = membes.getNextCursor()) != 0);  
    try
    { 
        BufferedWriter bw=new BufferedWriter (new FileWriter (trgt));

    for (String s:members)
    {
        bw.write(s);
        bw.write("\n");
    }
    bw.flush();
    bw.close();
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    System.out.println ("--------------------------------------");
}

}

0 个答案:

没有答案