为什么我在使用状态ID获取推文转发时总是得到0?Twitter4j

为什么我在使用状态ID获取推文转发时总是得到0?Twitter4j,twitter,twitter4j,Twitter,Twitter4j,我想获得一条推文的转发,我知道推文ID,但我总是得到0(列表状态的大小总是0)。我已经检查了我正在搜索的tweet有转发,但返回值为0。有人能告诉我为什么吗?谢谢。这是我的密码: public class getRetweets { public static void main(String[] args) { try { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebu

我想获得一条推文的转发,我知道推文ID,但我总是得到0(列表状态的大小总是0)。我已经检查了我正在搜索的tweet有转发,但返回值为0。有人能告诉我为什么吗?谢谢。这是我的密码:

public class getRetweets {

public static void main(String[] args) {

    try {
        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
              .setOAuthConsumerKey("key")
              .setOAuthConsumerSecret("keysecret")
              .setOAuthAccessToken("token")
              .setOAuthAccessTokenSecret("tokensecret");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        List<Status> statuses = twitter.getRetweets(Long.parseLong("523516722331271169"));
        for (Status status : statuses) {
            System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
        }
        System.out.println("done.");
        System.exit(0);
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to get retweets: " + te.getMessage());
        System.exit(-1);
    }
}
公共类getRetweets{
公共静态void main(字符串[]args){
试一试{
ConfigurationBuilder cb=新的ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(“密钥”)
.SetOAuthConsumerCret(“密钥加密”)
.setOAuthAccessToken(“token”)
.setOAuthAccessTokenSecret(“tokensecret”);
TwitterFactory tf=新的TwitterFactory(cb.build());
Twitter=tf.getInstance();
列表状态=twitter.getRetweets(Long.parseLong(“523516722331271169”);
用于(状态:状态){
System.out.println(“@”+status.getUser().getScreenName()+”-“+status.getText());
}
System.out.println(“完成”);
系统出口(0);
}捕获(twitter异常){
te.printStackTrace();
System.out.println(“无法获取转发:+te.getMessage());
系统退出(-1);
}
}

}

请执行以下操作,并验证您是否有针对给定tweetID的任何转发

        Status statusTemp = twitter.showStatus(Long.parseLong("523516722331271169"));
        System.out.println(statusTemp.getText());
        System.out.println(statusTemp.getRetweetCount());

您确定正在查找正确的tweetID吗?

您提供ID的tweet似乎有0次转发。您的代码似乎很好。我只是用肯定有转发的推特进行了检查

public void test(){
    TwitterFactory tf = new TwitterFactory(conf);
    Twitter twitter = tf.getInstance();

    Query query = new Query("from:BBCBreaking Lynda Bellingham");
    query.setLang("en");
    QueryResult result = null;
    try {
        result = twitter.search(query);
    } catch (TwitterException e) {
        e.printStackTrace();
    }


    for(Status status : result.getTweets()){
        if(status.getRetweetCount() > 0){

            long id = status.getId();

            List<Status> statuses = null;
            try {
                statuses = twitter.getRetweets(id);
            } catch (TwitterException e) {
                e.printStackTrace();
            }

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

        }
    }
}
公共无效测试(){
TwitterFactory tf=新的TwitterFactory(conf);
Twitter=tf.getInstance();
查询=新查询(“发件人:BBCBreaking Lynda Bellingham”);
查询.setLang(“en”);
QueryResult结果=null;
试一试{
结果=twitter.search(查询);
}捕获(twitter异常){
e、 printStackTrace();
}
对于(状态:result.getTweets()){
如果(status.getRetweetCount()>0){
long id=status.getId();
列表状态=空;
试一试{
status=twitter.getRetweets(id);
}捕获(twitter异常){
e、 printStackTrace();
}
System.out.println(“开始转发部分--------------------------”);
用于(状态转发:状态){
System.out.println(“@”+retweet.getUser().getScreenName()+”-“+status.getText());
}
System.out.println(“结束转发部分-----------------------------------------”);
}
}
}
输出如下所示:

开始转发部分------------------

@佩特纳达姆-琳达·贝林厄姆,在与癌症作斗争后去世

@布鲁诺阿普-林达·贝林厄姆,死于癌症

@poguesfan4ever-Lynda Bellingham在与癌症作斗争后去世

结束转发部分------------------

开始转发部分------------------

@holdbxcktherain——患有癌症的英国女演员兼主持人琳达·贝林厄姆

@Dusty_Milo-患有癌症的英国女演员兼主持人琳达·贝林厄姆

@_aaaamy-患有癌症的英国女演员兼主持人琳达·贝林厄姆


结束转发部分-----------------

我不熟悉您的库,但为什么要使用
Long.parseLong(..
)-您应该可以将字符串“523516722331271169”传递给它。非常感谢!此问题已得到解决。