2016-05-14 6 views
1

私はtwitter gemを使用して、ハッシュタグのツイートを取得しています。私の目標は、昨年のつぶやきを取り戻すことです。私は:max_id optionを使用しようとしています。twitterは何も返されません:max_idおよび/または:untilが指定されました

だから、私は(twitterが適切に構成されたクライアントである)を実行します。

loop.inject(nil) do |memo| 
    results = twitter.search "#ruby -rt", (memo ? {max_id: memo - 1} : {}) 
    last = results.inject(nil) do |_, res| 
    # handle res here, unrelated 
    res 
    end 

    break memo if last.nil? || last.created_at < (Date.today - 365).to_time 
    last.id 
end 

問題は、私は次のリクエストに空の結果セットを受け取ることです。つまり、最初の要求は≈2Kのつぶやきを返し、2番目の要求は常にnoneを返します。

twitter gem(または何か他のものを使用して)をチャンクで使用してステータスをtwitterから取得するにはどうすればよいですか?

答えて

0

まあ、searchへのコールでmax_idパラメータが有効なツイートIDであると予想されることが判明しました。

twitter.search "#ruby -rt", (memo ? {max_id: memo} : {}) 

#            ⇓⇓⇓⇓ HERE 
twitter.search "#ruby -rt", (memo ? {max_id: memo - 1} : {}) 

を変えることで、私は最終的に塊で過去にフィードを取得することができました。

NB:約1.5Kステータスが返された後、twitterはRateLimitエラーで応答します。

関連する問題