概要
ツイッターを見ていてもその時々のトレンドは自分で見に行かないと分からないですよね。
自分が見ているフィードにツイートが流れてきて、そこに貼ってあるリンク先の記事を読めば今のトレンドの内容が分かるとちょっと楽しいかなと思って、ツイッターの現在のトレンドを取得して、自動的に記事が投稿されるメディアを個人開発で作成してみました。(現在はサーバー閉じています。)
こちらで生成される記事を見れば人気のツイートやトレンドに関連するニュース記事へのリンクが集まっているので、トレンドの内容を正確に素早く知ることができます。
今回は作成したバッチの内容をざっくりと話していこうと思います。
処理の流れ
ブログ部分は一から実装するのが面倒だったため、ワードプレスを導入し、そこに今回phpで自作した記事作成バッチを配置して記事の自動生成を行いました。
バッチの処理の流れは以下のようになっています。
①twitterAPIを利用して、現在の上位5件とトレンドワードを取得
②同じくTwitterAPIを経由して、上記のトレンドが含まれているツイートで特に人気の高い(いいね数の多い)投稿上位4件を取得
③トレンドワードが含まれているニュース記事のリンク5件を取得
④人気ツイートとニュース記事のリンクを内容に記事をDBに保存
⑤記事投稿をツイッターアカウントに投稿
時々TwitterAPIとの接続がうまくいかず人気ツイートを取れないことがあったので、失敗したら次の順位のワードで記事作成という形で作成しました。そのため上位5件のトレンドを取得しています。
TwitterAPI
phpでTwitterAPIを操作するためにTwitterOAuthライブラリを利用しました。
$this->client = new TwitterOAuth($_ENV["TWITTER_CONS_KEY"],$_ENV["TWITTER_CONS_SECRET"],$_ENV["TWITTER_ACCESS_TOKEN"], $_ENV["TWITTER_ACCESS_TOKEN_SECRET"]);
$this->client->get("リクエスト先のPATH","付与したいパラメーター");
上記のような感じで、めんどくさい接続周りを行ってくれるので、phpでtwitterのAPIをいじる際は使ってみてください。
今回TwitterAPIの中で利用した機能は以下の2つです。
ツイート取得は、検索機能にクエリとして、先程取得したトレンドワードを付与して、ツイートを取得しました。
$tweets = $this->client->get('search/tweets', ['q' => $trendWord, 'result_type' => 'popular', 'count' => 4])->statuses;
こんな感じでリクエストを作ってあげるとトレンドアワードが含まれる人気ツイート4件を取得することができます。
ニュース取得
ニュースAPIは色々あったのですが、トレンドワードと関連する記事のヒット率の高かったgoogleNewsのAPIを使用しました。
こちらの記事を参考にニュース記事のタイトルをURLを取得して記事に追加しました。
作ってみた感想
トップツイート、ネット記事の内容の統一性がかなり高い。
トレンドワードでの検索だけでは内容と異なったツイートや記事リンクばかりになってしまうのではというのが開発中の懸念点だったのですが、そんなことはなかったです。
実際にその記事に貼ってあるツイートやリンク先の記事を読めばトレンドに関連する話題を正確に知ることができたので非常に良かったです。
その時々のツイッター上のトレンドなのでジャンルがバラバラで記事の統一感がない。
ジャンルごとのトレンドみたいのが取得できればよりユーザーの関心が高いメディアにできるのですが、そういった機能はなかったため、アニメから政治まで、何にも特化していないまとめ記事になってしまった。
19時~22時までのゴールデンタイムはテレビのトレンドが多い。
これは作ってみて分かったのですが、テレビ番組に関するトレンドが意外と上位を占めていました。
テレビの力はまだまだ健在だなと感じました。
記事内容が薄い
トップツイートと、ネット記事へのリンクを貼っているだけなのでちょっと内容が薄かったです。
自動的に記事が増えていけば手間がかからないブログができて良いじゃん!と思ったのですが、内容が濃く、面白い記事を作成するにはもっと工夫しなければいけませんね。
全く手間のかからなくて人の役に立つメディアをいつか作りたいな。。。