ようこそここは俺のチラシの裏だ。

専門学校卒のぽんこつえんじにあが個人事業主になって書いているただの日記。

【備忘録】TwitterAPIの一週間制限について。

(*'▽') みかいけつもんだい。

f:id:sugaryo1224:20171109203213g:plain

よくスクショを上げています

普段の日記をご覧の方であればご存知の通り、ぼくはよく写真やスクショを挙げています。

これらの写真またはスクショですが、一旦Twitterでツイートしており、

それを後からPCでダウンロードし、はてなブログにアップロードして日記に貼り付け

と言う流れでやっています。

Twitterから画像を落とすのは面倒です

で、これがですね、数が多いと非常に面倒なんですよね。

特にパズドラのスクショとかめっちゃ多いんですが、これを一つ一つダウンロードするのは非常に手間。

しかも、Twitterに上げた画像って、jpgならjpg-largeに、pngならpng-largeと、URLがlargeファイルになっているので、素直にダウンロードすると(Explorer上で)サムネイルが出なくなるので、この-largeをパスから削ってやると言う手間も必要になります。

画像一枚落とすのでもかなりの手間なのに、これを10枚、20枚とかやってたら日が暮れてしまいます。

ちょっとしたツールを作ってます

と言う事でですね、Twitterに投稿した画像付きツイートを検索し、画像URLを手に入れて画像ファイルをダウンロードすると言う一連の作業を自動化するツールを作っています。

このツールはTwitterAPIを利用しています。

正確には、TwitterAPIJavaから簡単に利用できる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にコード公開したいね。