第一話 そうだ、Twitterタグ晒し機を作ろう。

こんばんは。もりかぷです。

今回は毎年恒例のTwitterタグ晒し機を作っていきます。
そもそも「Twitterタグ晒し機 is 何」という方も居ると思うので過去製作したものを画像に示します。
↓こんなのとか

↓こんなの

簡単に説明すると“とにかく特定のハッシュタグ(#)が付いたツイートを画面に表示するWebアプリ(?)”です。

今回は、完成までに忘れないように自分用のメモとしても使うために、制作までの記事を書いていきます。

まず、制作する前に要件定義を行います。
とりあえず以下のように定めます。

  • 学祭のタグがツイートを取得したい
  • やっぱりリアルタイムで取得したい
  • MariaDBなどのデーターベースにデーターを格納したい
  • 画像や動画にも対応させたいよね
  • 最近の流行りであるグリッドデザインがいいな
  • 余計な画面更新は避けたい

とりあえず6点ほど出して見ました。
今回はツイートを取得する過程である、

  • 学祭のタグがツイートを取得したい
  • やっぱりリアルタイムで取得したい

の2つをやっていこうと思います。
1つ目の「特定のタグのツイートを取得したい」というのはとりあえず後回しにして、2つ目の「リアルタイムで取得する」について始めに考えていきたいと思います。

考えるとは言え、答えは非常に簡単で「検索ストリーミングAPI」を使えば良いだけです。

TwitterのストリーミングAPIと聞くと、多くの開発者を騒がせた「ストリーミングAPIの廃止」を良く耳にしますが、よくよく公式の発表を見ると

と書いてある通り、廃止するのはUser Streams と Site Streams の2つであり、検索ストリーミングAPIである「Filter realtime Tweets」の「statuses/filter」は廃止対象でないため問題ありません。(僕としてはUser Streamsをかなり愛用していたので悲しい)

という事で早速取得していきたいと思います。
Twitterのデーターを取得するには、APIキーが必要なので事前に審査を済ませて、キーの取得をしておいて下さい。
取得方法はここでは割愛します。

肝心の取得方法についてですが、僕はPHPがこの手のものだと慣れて居るので、PHPを使って作ります。
最初からコードを書いていくのもいいですが、便利なライブラリがあるので活用していきます。

今回使用するライブラリはFenn Baileyさんが作成したPhirehoseという、ストリーミングAPIに特化したものを使います。
ちなみにサンプルで、ちょうど数行変えるだけで今回の目的を達成できるものもありましたので活用していきます。

今回お世話になるライブラリ
fennb / phirehose

早速クローンし開くとexample/filter-track.phpというものがあるので、これを使います。ちなみにこのファイルを数行書き換えるだけでツイートがリアルタイムで取得できちゃいます。

という事で事前に取得したAPIキーと検索対象にするキーワードを入力したり軽く改造します。以下のようになりました。

改造したところについてですが、URLの除去やキーワード除去機能を追加してみました。あとセキュリティ上、HTMLタグをただの文字列に変換するようにしてみました。(怪しいスクリプトとか埋め込まれたら困るため)

という事で早速実行してみます。

注)ファイル名が違いますが、単純に変更しただけです

なんか色々出てきます。という事で早速ツイートしていきます。
先ほどの検索対象に入れたタグを入れてツイートします。

ツイート直後に黒い画面(ターミナル)を見ると…

上のコードだと「書込」の部分が「取得」になる

しっかり取得できていました。
という感じでライブラリ付属のサンプルコードを弄るだけで簡単にツイートの取得ができました。

…ライブラリ、神すぎる!!

そんな感じでほぼコーディング無しでツイートの取得ができました。
今後はこのコードに色々追加して、PDO(PHP Data Objects)を用いて、MariaDBなどのデーターベースにツイート内容などの書き込みを行なっていきます。

以上、そうだ、Twitterタグ晒し機を作ろう 第一話でした。
ここまで読んで頂き有難う御座いました。

コメントいかがですか。