Twitter連携Webアプリ「Twinspector」を開発しました

投稿者: | 2019年10月23日

ITエンジニア職をしていると、いろんなことを勉強したい欲求にかられます。勉強がてらいろんなものを作るのですが、今回は珍しく面白いものができたなと勝手に思い、ブログに書くことにしました。

Twinspector

https://twinspector.nothing-behind.com

今回作ったのは「Twinspector」というTwitter連携のWebアプリです。ブラウザ上で動作します。アプリインストールなどがないので導入はしやすいと思います。モバイルも対応しているのでスマホからでも使うことができます。

基本的にはTwitter上にある公開情報を使って画像表示したりアカウント情報を表示するものになります。

具体的に何ができるのか?

シンプルなものにしたかったので機能は2つだけです。(もしかしたらこれから増やすかもですが、、)

メディア一覧表示

スクリーンネーム(@の後ろにつくTwitter上の名前、例えば「TwitterJP」「Disney」など)のTwitterアカウントが投稿したツイートに添付されている画像を一覧で表示します。ただ表示するだけだと面白くないので、「いいね」や「リツイート」の回数で並び替えしてくれる機能をつけています。これで、人気の画像(もしくはツイート)がわかります。

また、画像だけみてもあれなので、画像をタップ・クリックするとその画像が添付されたツイートにジャンプすることができます。

スタッツ表示

https://twinspector.nothing-behind.com

スクリーンネームのTwitterアカウントのアカウント情報や最近のツイートの簡単な分析をしてくれます。例えば、このアカウントは作成されてから何日経過していて、1日にどれくらいツイートされているか、どのくらいのペースでフォロワーが増えているのかがわかります。直近のツイートにはどのくらいいいねがされているのか、リツイートされているのかがわかったりもします。

両方の機能に共通していること

直近で入力したスクリーンネームが全ユーザに共有されます。ただし、フォロワーが1000人を超えているアカウントのスクリーンネームが共有されます。そのようにした理由は、例えば自分のアカウントを試しに見てみたいけど他のユーザには知られたくない、という人もいるかなと思ったからです。なぜ1000フォロワー超えという条件なのかというと、これは個人的な意見なのですが、1000フォロワー超えている人はむしろ自分を見て!という人が多いのではないかなと思ったからです。これは将来的に5000フォロワーとか10000フォロワーにしようかな、とも今から考えています。正解はない数字かなとは思います。

技術

どんなものを使って作られているかというと、かなりシンプルな作りになっています

インフラ

GCP

インフラにはGoogle Cloud Platform(通称GCP)を使用しています。言わずと知れた、Googleさんのインフラサービスですね。

GCPの Google Kubernetes Engineという仕組みを使わせていただいています。こういうマイクロサービスを立ち上げるのにはとても適していると思います。

Webサーバ:Nginx

WebサーバにはNginxを使用しています。処理性能やメモリ使用の効率性に定評があるので、いつもWebサーバにはNginxを使っています。

サーバサイド

プログラム言語:Python

最近機械学習などで一気に人気が出てきた言語です。僕がPythonを使うのも、Python自体の学習が将来のAI開発学習に繋がるかなと思ったというのがあります。あとは最近仕事でPythonを使うようになったのでちょっとでも学習する場が欲しかったからでもあります。

Webフレームワーク:Django

PythonのWebフレームワークといえばこれ!しか知らなかったので使っています。あとで知ったのですが、他にも Flask、Bottleなどがあるようなので今後使って見たいと思います。

キャッシュサーバ:Redis

言わずと知れた、爆速キャッシュサーバですね。これを使って一部の機能で高速な処理を可能にしています。

フロントエンド

HTML、Javascript(jQuery)、CSS(Bootstrap)

これは、まぁ、説明はいらないでしょう。かなりシンプルです。。。

Twitter連携

Twitterとの連携には requests_oauthlibを使っています。このライブラリを通じてTwitter認証を行い、API使用を可能にしています。もちろん、その前にTwitterのDeveloperとしての登録を済ませておく必要があるので注意です。

まとめ

技術的な話も書きましたが、Twitterで画像を一挙に見たい、アカウント情報のちょっとしたまとめが見てみたいなどありましたらぜひ使ってみてください。