gpt4 book ai didi

java - 用于获取用户推文的 Twitter Stream API

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:27 25 4
gpt4 key购买 nike

我正在使用 Twitter 流 API 从用户那里获取推文。我有用户 ID 列表 我如何从 TwitterStream API 获取推文列表。我分析了以下样本

public class TwitterStreamAPI {

public static void main(String[] args) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("xxxx");
cb.setOAuthConsumerSecret("xxx");
cb.setOAuthAccessToken("xxx");
cb.setOAuthAccessTokenSecret("xxx");

TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();

UserStreamListener listener = new UserStreamListener() {
@Override
public void onStatus(Status status) {
System.out.println("onStatus @" + status.getUser().getScreenName() + " - " + status.getText());
}

@Override
public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
//System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
}

@Override
public void onDeletionNotice(long directMessageId, long userId) {
// System.out.println("Got a direct message deletion notice id:" + directMessageId);
}

@Override
public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
// System.out.println("Got a track limitation notice:" + numberOfLimitedStatuses);
}

@Override
public void onScrubGeo(long userId, long upToStatusId) {
// System.out.println("Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId);
}

@Override
public void onStallWarning(StallWarning warning) {
// System.out.println("Got stall warning:" + warning);
}

@Override
public void onFriendList(long[] friendIds) {
/*System.out.print("onFriendList");
for (long friendId : friendIds) {
System.out.print(" " + friendId);
}
System.out.println();*/
}

@Override
public void onFavorite(User source, User target, Status favoritedStatus) {
/* System.out.println("onFavorite source:@"
+ source.getScreenName() + " target:@"
+ target.getScreenName() + " @"
+ favoritedStatus.getUser().getScreenName() + " - "
+ favoritedStatus.getText());*/
}

@Override
public void onUnfavorite(User source, User target, Status unfavoritedStatus) {
/*System.out.println("onUnFavorite source:@"
+ source.getScreenName() + " target:@"
+ target.getScreenName() + " @"
+ unfavoritedStatus.getUser().getScreenName()
+ " - " + unfavoritedStatus.getText());*/
}

@Override
public void onFollow(User source, User followedUser) {
/*System.out.println("onFollow source:@"
+ source.getScreenName() + " target:@"
+ followedUser.getScreenName());*/
}

@Override
public void onDirectMessage(DirectMessage directMessage) {
/* System.out.println("onDirectMessage text:"
+ directMessage.getText());*/
}

@Override
public void onUserListMemberAddition(User addedMember, User listOwner, UserList list) {
/*System.out.println("onUserListMemberAddition added member:@"
+ addedMember.getScreenName()
+ " listOwner:@" + listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListMemberDeletion(User deletedMember, User listOwner, UserList list) {
/* System.out.println("onUserListMemberDeleted deleted member:@"
+ deletedMember.getScreenName()
+ " listOwner:@" + listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListSubscription(User subscriber, User listOwner, UserList list) {
/*System.out.println("onUserListSubscribed subscriber:@"
+ subscriber.getScreenName()
+ " listOwner:@" + listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListUnsubscription(User subscriber, User listOwner, UserList list) {
/*System.out.println("onUserListUnsubscribed subscriber:@"
+ subscriber.getScreenName()
+ " listOwner:@" + listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListCreation(User listOwner, UserList list) {
/*System.out.println("onUserListCreated listOwner:@"
+ listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListUpdate(User listOwner, UserList list) {
/*System.out.println("onUserListUpdated listOwner:@"
+ listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserListDeletion(User listOwner, UserList list) {
/*System.out.println("onUserListDestroyed listOwner:@"
+ listOwner.getScreenName()
+ " list:" + list.getName());*/
}

@Override
public void onUserProfileUpdate(User updatedUser) {
//System.out.println("onUserProfileUpdated user:@" + updatedUser.getScreenName());
}

@Override
public void onBlock(User source, User blockedUser) {
/*System.out.println("onBlock source:@" + source.getScreenName()
+ " target:@" + blockedUser.getScreenName());*/
}

@Override
public void onUnblock(User source, User unblockedUser) {
/*System.out.println("onUnblock source:@" + source.getScreenName()
+ " target:@" + unblockedUser.getScreenName());*/
}

@Override
public void onException(Exception ex) {
/* ex.printStackTrace();
System.out.println("onException:" + ex.getMessage());*/
}
};

String useIds[] = {"99901654"};




twitterStream.addListener(listener);
twitterStream.user(useIds);
}
}

https://github.com/yusuke/twitter4j/blob/master/twitter4j-examples/src/main/java/twitter4j/examples/stream/PrintUserStream.java

但它不打印状态

最佳答案

流式 api 为您提供实时事件,因此如果在您收听期间没有用户发推文,您将看不到任何输出。

如果您改为尝试获取用户的历史推文,请考虑使用 Twitter#getUserTimeline(screenName)相反,例如:

final Twitter twitter = new TwitterFactory().getInstance();
final List<Status> statuses = twitter.getUserTimeline(screenName);

for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
}

查看此 example了解更多详情。

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

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