Twitter の会話をリアルタイムにまとめる Web サイト、「 TwitActivity 」を公開しました
追記
TwitActivity は TweetDialogue に生まれ変わってより使いやすくなりました。 今後は TweetDialogue をよろしくお願いします。
3/1 0:00より、登録したユーザーが Twitter 上で行った会話を時系列でまとめて時系列に表示する Web サイト、 TwitActivity を公開しました。
技術的な話
このサービスでは、 Twitter の Streaming API を使用してユーザーのつぶやきをリアルタイムに取得しています。 そして取得したつぶやきの in-reply-to を再帰的にたどって会話としてまとめます。
開発言語は Python で、使用したフレームワークは Pyramid 、 データベースは MySQL + memcached 。 Pyramid の利用はこれが初めてでした。 プラットホームには Google App Engine のようなクラウドは採用せずに自前で用意しました。 フロントエンドは NGINX 、 バックエンドは uWSGI です。
ログインをお願いする理由
この件について @YDKKK さんからご質問を頂いたのでお答えします。
in-reply-to を辿る際に発生する「 id を指定してつぶやきを取得する能動的なリクエスト」を行うには REST API を利用します。 その REST API にアクセスするためにユーザーにログインをお願いしています。
また、ログインしていただかないと収集する会話の対象が分からず、極端な話をすれば TwitActivity をご利用されていないユーザーを含む全 Twitter ユーザーの会話を収集し保存しなくてはなりません。 そこで、収集対象を限定するためにログインをお願いしています。
キャッシュ
上記の通りこのサービスでは in-reply-to を辿る際に REST API を使用しています。 しかし REST API でのリクエストには制限があるため、このリクエストは必要最低限に抑える必要があります。 特に REST API の White List 登録制度が廃止された現在ではより切実な問題です。
そこで、このサービスでは Streaming API によって取得できたすべてのつぶやきを可能な限り memcached にキャッシュし続けています。
最後に
Twitter での会話のログを取っておきたいことが時々あります。 例えば技術的な事を教授してもらったときや、ほかのユーザー同士による議論の流れを知りたい時、など。 そのときにこのサービスを使うと便利です。 マジ便利です。
ぜひお試しください。