【问题标题】:twitter4j - get tweets by IDtwitter4j - 按 ID 获取推文
【发布时间】:2012-11-19 15:24:55
【问题描述】:

当我拥有推文 ID 和用户 ID 时,如何获取推文?我有一个包含以下行的文件:

userID  tweetID

我想我应该去:

Query query = new Query("huh ?");
QueryResult result = twitter.search(query);
List<Status> tweets = result.getTweets();

但我不知道如何拼写query

谢谢

【问题讨论】:

    标签: twitter4j


    【解决方案1】:

    好吧,这不是搜索电话。这条推文显然被称为Status,通过 ID 检索一条的代码是:

        final Twitter twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_KEY_SECRET);
        AccessToken accessToken = new AccessToken(TWITTER_TOKEN,
                TWITTER_TOKEN_SECRET);
        twitter.setOAuthAccessToken(accessToken);
        try {
            Status status = twitter.showStatus(Long.parseLong(tweetID));
            if (status == null) { // 
                // don't know if needed - T4J docs are very bad
            } else {
                System.out.println("@" + status.getUser().getScreenName()
                            + " - " + status.getText());
            }
        } catch (TwitterException e) {
            System.err.print("Failed to search tweets: " + e.getMessage());
            // e.printStackTrace();
            // DON'T KNOW IF THIS IS THROWN WHEN ID IS INVALID
        }
    

    【讨论】:

    • 您好,我对您的程序有疑问。它可以检索多少条推文?
    • @zfz:它可以检索 50 条推文,其中有 5 次失败 - 没有检查更多
    【解决方案2】:

    接受的答案不再有效。根据this page中的回答,代码应该改成如下:

        String consumerKey = xxxxxxx,
                consumerSecret = xxxxxxx,
                twitterAccessToken = xxxxxxx,
                twitterAccessTokenSecret = xxxxxxx,
                Tweet_ID = xxxxxxx;
    
        ConfigurationBuilder builder = new ConfigurationBuilder();
        builder.setOAuthConsumerKey(consumerKey);
        builder.setOAuthConsumerSecret(consumerSecret);
        Configuration configuration = builder.build();
        TwitterFactory factory = new TwitterFactory(configuration);
        final Twitter twitter = factory.getInstance();
    
        //twitter.setOAuthConsumer(consumerKey, consumerSecret);
        AccessToken accessToken = new AccessToken(twitterAccessToken, twitterAccessTokenSecret);
        twitter.setOAuthAccessToken(accessToken);
        try {
            Status status = twitter.showStatus(Long.parseLong(Tweet_ID));
            if (status == null) { //
                // don't know if needed - T4J docs are very bad
            } else {
                System.out.println("@" + status.getUser().getScreenName()
                        + " - " + status.getText());
            }
        } catch (
                TwitterException e) {
            System.err.print("Failed to search tweets: " + e.getMessage());
            // e.printStackTrace();
            // DON'T KNOW IF THIS IS THROWN WHEN ID IS INVALID
        }
    

    【讨论】:

    • 你运行了我的代码但没有运行吗?请注意,在您链接的问题中,TwitterFactory.getSingleton() 被称为我在这里不使用
    • 是的。您的代码不起作用,要将身份验证信息传递给 twitter 对象,应使用“ConfigurationBuilder”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2014-08-03
    • 2014-01-07
    相关资源
    最近更新 更多