我正在使用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
但它不打印状态
我在这里详细回答了同样的问题。请检查一下。这将向您展示我们如何使用所需的访问令牌读取和更新twitter。
简而言之,以下是步骤
请在这里查看示例代码。https://stackoverflow.com/a/40691881/2405670
流媒体API为您提供实时事件,因此如果在您收听期间没有用户发推,您将看不到任何输出。
如果您尝试获取用户的历史推文,请考虑使用Twitter#getUserTimeline(屏幕名称)
代替,例如:
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());
}
有关更多详细信息,请参阅此示例。
问题内容: 我有一个推特ID列表,我想为其下载其文本内容。有什么简单的解决方案,最好是通过Python脚本来实现?我查看了Tweepy之类的其他库,但事情似乎并没有那么简单,并且由于我的清单很长,因此无法手动下载它们。 问题答案: 您可以使用API路由按其ID访问特定的推文。大多数Python Twitter库遵循完全相同的模式,或为这些方法提供“友好的”名称。 例如,Twython提供了几种方法
我正在尝试使用Twitter API实时收听许多用户(特定用户)的推文,但我无法找到任何关于此的留档。我发现了很多关于收听使用某个主题标签或关键字的推文的信息,但没有关于实时收听来自某些用户的所有推文的信息。 使用Twitter4J API,我能够指定多个用户,创建一个流,然后在其中一个用户发推文时运行一段代码。我如何使用PHP完成这一点?
我试图使用Tweepy从特定位置获取推文,但当我运行代码时,会出现此错误 在我的代码中,我尝试从纽约市获取推文,其中包含纽约的位置坐标。我怎样才能从纽约一个人那里得到推特?我的猜测是使用一系列坐标,比如x,y和y,z。我该怎么做呢? 这是我的代码:
我对Twitter API和对OAuth的总体理解存在问题。我可以轻松地请求从我的帐户中提取信息。我遇到的问题是,其他用户可能会使用“使用Twitter登录”。即使我能在他们登录后获得其他用户信息,我也无法在其他网站上单独请求他们的信息。php页面(我不想从MySQL获取信息)。我只能在原件上获得他们的信息一次。在他们登录并加载页面后返回php页面。 我将发布一些代码,但我的主要担忧/问题是——是
问题内容: 我正在尝试浏览特定用户的推文,并获得对该推文的所有回复。我发现twitter的APIv1.1不直接支持它。 是否有破解或变通方法来获取特定推文的回复。我正在使用python Streaming API。 问题答案: 有使用REST API的解决方法。 您将需要要查找回复的原始推文作者的id_str和@username。 您应该将Search API用于作者的“ @用户名”。浏览结果以查
问题内容: 我想从一个Twitter用户获得所有用户推文,到目前为止,这是我想出的: 请忽略不必要的导入。一个问题是,这只会获得用户最近的推文(或前20条推文)。是否可以让所有用户发布推文?据我所知,GEt_user_timeline(?)仅允许限制为3200。是否有办法获得至少3200条推文?我究竟做错了什么? 问题答案: 您的代码存在一些问题,包括一些多余的导入。特别是,你不需要和-能够处理你