【问题标题】:Twitter4j Getting Tweets Too LongTwitter4j 推文太长
【发布时间】:2017-10-29 10:05:01
【问题描述】:

您好,我有推文 ID,我之前将它们保存到数据库中。但我发现我无法有效地节省创建时间(它像 00:00:00 一样保存)。因此,我希望通过使用以下代码来更新我的推文和推文 ID。

   MyConnectionBuilder myConnection = new MyConnectionBuilder();
   Twitter twitter = new TwitterFactory(myConnection.configuration.build()).getInstance();
    Status status = twitter.showStatus(Long.parseLong(tweetId));

但是获取推文需要太多时间,这有任何速率限制吗?如果有速率限制,我怎样才能让它更快?

【问题讨论】:

    标签: database twitter twitter4j twitter-streaming-api twitter-search


    【解决方案1】:

    通过showStatus 更新每条推文会浪费您在给定时间范围内的“信用”(速率限制)。

    要更新多条推文,您应该使用lookup,每个请求最多使用100 id。此调用将使用 /statuses/lookup 端点。

    可以在here找到速率限制和端点文档

    为它截取代码:

    Twitter twitter =  twitterFactory.getInstance();
    ResponseList<Status> responseList  = twitter.lookup(ArrayUtils.toPrimitive(ids));
    
        if(responseList != null) {
            for (Status status : responseList) {
                // do what you need to do here
    
            }
        }       
    

    【讨论】:

    • 您好,感谢您的回复,我会尝试但是 ids ,数组将输入什么?或列表?我试过了,但我找不到确切的输入。 @rzo
    • 基本输入是数组。示例使用长值列表或集合。
    • 我将其修改为 long[],并在查找方法中删除了 Arrayutils.toPrimitive 方法,我只是放置了我的 long[] 数组。会不会有问题? @rzo
    • twitter4j.org/javadoc/twitter4j/api/… 长数组应该没问题。
    • 嗨,我无法得到任何结果,ResponseList responseList = twitter.lookup(myIdArray); System.out.println(responseList.size());大小打印为零。 @rzo,我该怎么办?感谢您的关注
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2020-05-20
    • 2018-09-01
    • 2015-08-10
    • 2021-04-11
    相关资源
    最近更新 更多