0

你好,我有推特ID的,我將它們保存到數據庫之前。但是我看到我無法有效地節省創建的時間(它像00:00:00一樣保存)。因此,我希望通過使用以下代碼更新我的tweet與推特id。Twitter4j獲取推文太長

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

但是獲取推文需要太多時間,是否有任何費率限制?如果有速率限制,我該如何讓速度更快?

回答

1

通過showStatus更新每一條推文會浪費您在特定時間範圍內的「積分」(限額)。

對於更新多個推文,您應該使用lookup,每個請求的ID最大爲100。此呼叫將使用/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 

     } 
    }  
+0

您好感謝您的回覆,我會嘗試,但會是怎樣的IDS輸入,陣列?或列表?我試過,但我無法找到確切的輸入。 @rzo – mstfky

+0

基本輸入是數組。示例使用List或Long值集。 – rzo

+0

我修改它爲[],我在查找方法中刪除了Arrayutils.toPrimitive方法,我只是把我的long []數組。它可能是一個問題嗎? @rzo – mstfky