Twitter API で、ツイートをリツイートした人を 100人 より多く取得する方法

背景

Twitter API には GET statuses/retweeters/ids: というエンドポイントが用意されており、これを用いると「あるツイートをリツイートした人の情報」を得ることができます。

しかし、このエンドポイントで取得できる人数は 100人 までです。さらに、他のエンドポイントですと「1回のエンドポイントにアクセスすることで取得できる上限人数は 100人 だが、繰り返しアクセスすることで 100人 より多くの人の情報が得られる」んですが、リツイートした人の情報についてはこれができません。

100人より多く取得したい

それでも「あるツイートをリツイートした人の情報」を 100人 より多く得るためにはどうしたらいいか。非常に泥臭い方法なのですが「RT元のツイートのテキスト内容でタイムライン検索をかける」という方法が現時点で取りうる方法でしょう。タイムラインの検索によるツイート取得は最大 3200件 まで可能だからです。

もっと原始的には「短い間隔で 100件 の取得を繰り返す」というのも一つの方法です。

しかし

もちろんこれは本質的な解決策ではありません。ツイート検索の結果にはノイズが入ることもありえますし、ツイート検索の API の仕様が変わったらこの手段を用いることができなくなるかもしれません。

まあでも、現実にはこういう風に「運用でカバー」しなければいけないことはあります。

参考ページ

Powered by はてなブログ