【備忘録】TwitterAPIの一週間制限について。
(*'▽') みかいけつもんだい。
- よくスクショを上げています
- Twitterから画像を落とすのは面倒です
- ちょっとしたツールを作ってます
- モノ自体はまぁ完成してるんだけど
- TwitterのSearchAPIには一週間制限がある
- DeckとかのTwiterクライアント実装では一週間制限を突破している
- universal-api と言う別解
- と言うお話。
よくスクショを上げています
普段の日記をご覧の方であればご存知の通り、ぼくはよく写真やスクショを挙げています。
これらの写真またはスクショですが、一旦Twitterでツイートしており、
それを後からPCでダウンロードし、はてなブログにアップロードして日記に貼り付け、
と言う流れでやっています。
Twitterから画像を落とすのは面倒です
で、これがですね、数が多いと非常に面倒なんですよね。
特にパズドラのスクショとかめっちゃ多いんですが、これを一つ一つダウンロードするのは非常に手間。
しかも、Twitterに上げた画像って、jpg
ならjpg-large
に、png
ならpng-large
と、URLがlargeファイルになっているので、素直にダウンロードすると(Explorer上で)サムネイルが出なくなるので、この-large
をパスから削ってやると言う手間も必要になります。
画像一枚落とすのでもかなりの手間なのに、これを10枚、20枚とかやってたら日が暮れてしまいます。
ちょっとしたツールを作ってます
と言う事でですね、Twitterに投稿した画像付きツイートを検索し、画像URLを手に入れて画像ファイルをダウンロードすると言う一連の作業を自動化するツールを作っています。
このツールはTwitterAPIを利用しています。
正確には、TwitterAPIをJavaから簡単に利用できるtwitter4j
と言うライブラリがあるんですが、これを利用しています。
モノ自体はまぁ完成してるんだけど
作っていますと言うか、実はツール自体はもうとっくに完成してて、普通に運用開始してるんですが、ここで一つ問題が。
TwitterのSearchAPIには一週間制限がある
TwitterAPIの検索機能(SearchAPI)では、遡れるのが過去一週間まで、と言う検索制限があるようです。
この辺のQiita記事とかを参考にして、日付範囲since-until
を指定するなどの機能改良を施してみたものの、これでも一週間制限は突破できませんでした。
TwitterAPIは過去に何度か仕様変更されており、Qiitaの記事がもしかしたら古かったのかも知れません。
いつ頃かのバージョンではsince-until
指定で一週間制限が突破出来ていたのかも知れませんが、少なくとも今現在ぼくが実装した限りでは、一週間程度過去の検索は出来ませんでした。
(具体的な閾値がどこに置かれているのかは詳しく調べてませんが、だいたい一週間先から見えなくなるようです)
DeckとかのTwiterクライアント実装では一週間制限を突破している
しかし、ぼくが普段利用しているTweetDeckなどのクライアント実装では、普通に一週間以上過去のツイートでも画像検索出来ています。
つまり、TwitterAPIの機能範囲内で実現可能である筈なのです。
調べてもあまりこの情報が出て来ないのが不思議ですが、、、。
universal-api と言う別解
で、暫くこの一週間制限問題にぶち当たっていて、現在も未解決です。
が、最近ちょっと興味深い情報を目にしました。
どうも、TwitterAPIの中でsearch
じゃなくuniversal
?とか言う別なAPIがあり、こっちを使うと一週間制限が存在しないと言うのです。
twitter4j
からこのuniversal
が利用出来れば万々歳、でもそれが出来なかったら、最悪の場合ライブラリを使用しないで自力でTwitterAPIを叩くと言う実装に切り替えていく必要が出て来ます、、、。
まぁ、そうなったらもうJavaを使う理由も無くなるので、素直にC#で全部作り直しますけどね。
と言うお話。
今度もうちょっと調べてみて、ツールが完成したらGitHub
にコード公開したいね。