gpt4 book ai didi

java - 从 Twitter hbc API 获取推文

转载 作者:行者123 更新时间:2023-12-01 10:16:52 25 4
gpt4 key购买 nike

public class TwitterStreamImpl implements TwitterStream {

public void setUpStream() throws InterruptedException {
final String consumerKey = getTwitterCredentials().get(0).toString();
final String consumerSecret = getTwitterCredentials().get(1).toString();
final String token = getTwitterCredentials().get(2).toString();
final String secret = getTwitterCredentials().get(3).toString();

BlockingQueue<String> queue = new LinkedBlockingQueue<String>(10000);
StatusesFilterEndpoint endpoint = new StatusesFilterEndpoint();
// add some track terms
endpoint.trackTerms(Lists.newArrayList("twitterapi", "#yolo", "trump", "donald", "lol"));

Authentication auth = new OAuth1(consumerKey, consumerSecret, token, secret);
// Authentication auth = new BasicAuth(username, password);

// Create a new BasicClient. By default gzip is enabled.
BasicClient client = new ClientBuilder()
.hosts(Constants.STREAM_HOST)
.endpoint(endpoint)
.authentication(auth)
.processor(new StringDelimitedProcessor(queue))
.build();

// Establish a connection
client.connect();

// Do whatever needs to be done with messages
for (int msgRead = 0; msgRead < 1000; msgRead++) {
if (client.isDone()) {
System.out.println("Client connection closed unexpectedly: " + client.getExitEvent().getMessage());
break;
}

String msg = queue.poll(5, TimeUnit.SECONDS);
if (msg == null) {
System.out.println("Did not receive a message in 5 seconds");
} else {
System.out.println(msg);
}
}

client.stop();
}

/**
* Reads twitterStup.txt from C:/Users/"user"/documents/ and returns them as
* an array
*
* @return Twitter Api Credentials
*/
private ArrayList getTwitterCredentials() {
BufferedReader in;
String str;
ArrayList<String> list = new ArrayList<String>();
try {
in = new BufferedReader(new FileReader("*******"));

while ((str = in.readLine()) != null) {
list.add(str);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

控制台日志显示:

Did not receive a message in 5 seconds

它每五秒就会说一次。我想“sysout”(实时)每条推文,其中包含端点 trackTerms 之一。但没有错误或类似的情况。代理可能有问题吗?

最佳答案

该代码正在运行,就像当时一样。问题出在代理上。因为我一直在办公室网络中,所以无法连接到流。所以我用自己的笔记本尝试了一下,你猜怎么着,它成功了。

关于java - 从 Twitter hbc API 获取推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35843743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com