- 2018/01/29追記:トゥギャッター株式会社がNTTデータ提供の検索APIを使用することになったとアナウンスがあったことで、今記事のような「あるはずのツイートが出てこない」現象は少なくなると思われます。 https://twitter.com/togetter_jp/status/957812833609170944
- 2019/06/27追記:トゥギャッター公式のChrome拡張機能がリリースされたようです。こちらを使うのも良いでしょう https://twitter.com/togetter_jp/status/1143723761679519745
Toggetter(トゥギャッター)でツイートまとめを作成する際、ハッシュタグ等でキーワード検索をしますが、直近多くのツイートがあったにも関わらず検索が全くヒットしない場合があります。
「RTを除く」であるとか「日本語のみ」のオプションを外して広域に検索しても同様の場合があります。
「Twitter公式ウェブ、Twitter公式アプリでの検索はひっかかるんだけど…」という場合は、Twitter が提供している REST API の制限もしくは不具合の類であることが考えられます。Togetter も(たぶん)これを使って内部的にツイートを検索しているからです。
この場合、どうやって Togetter でツイートをまとめるとよいでしょうか。
ツイートURLをTogetterに読ませる方法
上記キャプチャ画面にも見られますが、Togetter のまとめ画面にはというボタンがあり、このボタンを押すとツイートのURLを指定して一括読み込みが行えます。
あとはTwitter公式ウェブから検索して引っかかった個別ツイートのURL群をここに貼り付ければよいことになります。
Twitter公式ウェブの検索画面からツイートURLを抜き出す
「一つずつ右クリックしてリンクURLをコピー」といった原始的な方法はツイート数が多くなればなるほど現実的ではないでしょう。もちろんここは Qiita なので簡単なプログラミングで解決しましょう。「何も設定されていない Google Chrome があるだけ」という状態であれば、デベロッパーコンソールに簡単な JavaScript を入力するのが簡単です。
まずはTwitterの検索で「すべてのツイート」を選択した状態で、読みたいツイートが出尽くすまで下にスクロールします。あまりに多すぎる場合にはうまくいかない場合もあったり、Twitter の検索機能の制限などでこちらでも出てこない場合があります。
この状態で Google Chrome であれば「デベロッパーツール」「JavaScriptコンソール」を開き、JavaScriptが入力可能な状態にします。
そこで
urls=""; $("a.tweet-timestamp").each((idx, el)=>{urls+=el.href+"\n"}); urls;
と打つことで、ツイートURLが抜き出せます(2017年12月現在)。
やることの方針は以下のような感じ。
- 個別ツイートへのリンクは tweet-timestamp クラスを持った a 要素となっているので、それを指定するCSSセレクタは
a.tweet-timestamp
となり、その href 属性の値をひたすら集めれば良いことになる - Twitter公式ウェブでは jQuery を読み込んでいるので、
$("a.tweet-timestamp).each(...)
といったショートカットが書ける
もちろんこの仕様は2017年12月現在のTwitter公式ウェブです。もし、年月が経って仕様が変わっている、このテクニックを応用したい場合は、日付文字列がリンクになっているツイートURLリンク部分を右クリックして「検証」を選択してみると、HTMLの該当部分がデベロッパーコンソールで表示されるので、色々とヒントが得られます。