LoginSignup
0

posted at

updated at

【 React / Firebase 】Twitter API を使用しツイートを集計するBOT

Twitter API を使用し定期的にツイートを集計し、データをランキング形式で表示するアプリを作りました。

URL: https://toptennovels.com/lists?type_id=0

Twitter: @top10novels

作ったもの

名刺代わりの小説10選というタグが付いたツイートを2日ごとに集計し、トップ500までのデータを表示するアプリを作りました。

アプリ概要

Twitter API を使用し、#名刺代わりの小説10選というタグがツイートを集計し、データをランキング形式で表示するアプリを作りました。


上のようなツイートを2日ごとに最大40個集計し、タイトルや著者名などのデータを随時データベースに追加していきます。

集計方法についてはこちら


集計後には集計したツイート数、カウントされた作品数を自動でツイートします。


検索機能もついています。
タイトルで検索をし、どれくらいの人が名刺代わりの小説10選に入れたのか確認できます。

技術スタック

こちらがインフラ構成です。

Front-end

フロントエンドは React.js 。

Back-end

バックエンド・インフラ周りは すべて Firebase で完結しています。デプロイも Firebase で。

  • Firestore: データ管理
  • Functions: 設定したトリガーでバックエンド処理を自動的に実行
  • Hosting: デプロイ

無料プランではなく、従量制の Blaze プランを使用。

Firebase の Schedule functions というものを使用し、設定されたスケジュールで処理を実行しています。

機能の紹介

  • データを登録日、票数の項目からソート
  • 検索機能 (Algoliaを使用)
  • 作品別だけではなく著者ランキングも表示
  • 集計に使用した累計ツイート数、累計作品数を月ごとに表示

ツイートからタイトルと著者名の情報を収集した後、一冊一冊、楽天ブックスAPIを使用し検索にヒットされたもののみカウントしています。

APIは1回につき1秒以上の間隔をあけて使用しています。

デザインは Material – UI を使用。

図はChart.js。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0