エンジニア流Twitterリサーチ術、第3章です。
(第1章はコチラ)(第2章はコチラ)
今回は、前回作ってみた「Twitterリサーチ」プログラムを、さらに改良。プログラミングスキルがあると、既存の(用意された)ツールやサービスを使うのでは絶対できない、より細かいカスタマイズが可能になっていきます。
目次
- 1 お題:リサーチせよ!
- 1.1 業界の有力Twitterユーザーをフォローしている人達は?
- 1.2 必要な情報を必要なだけ、まとめて見たい
- 2 どうやって探すか考える
- 2.1 公式サイトで1つ1つ見るのは、あり得ない
- 2.2 ツールやサービスはあるけれど・・
- 2.3 そうだ、Twitter API を使おう
- (※ ここまで、前々回記事)
- 3 コードを書くよ
- 3.1 結局、何が欲しいんだい?
- 3.2 理想の表示結果をHTML&CSSで書く
- 3.3 まずは「自分のアカウント」のフォロワーを取得可能に
- (※ ここまで、前回記事)
- 4 取得結果をもうちょっと見やすくする
- 5 さらに使いやすく・・
- 6 まとめ
取得結果をもうちょっと見やすくする
さて、これでデータの表示自体は出来たのですが、今後の使い勝手や見易さを考えると、以下のような事もやっておきたいな、と。
- プロフィールへのリンク
- 列幅の調整
- リンクの自動設定
- 日付のフォーマット
こうした表示部分も、コードを修正する事で変更できます。
ユーザー名をリンク形式に【39行目】
<td><a href="https://twitter.com/<?php echo $result->screen_name; ?>" target="_blank"><?php echo '@' . $result->screen_name; ?></a></td>
ユーザー名をクリックするとTwitter公式サイトのプロフィールページへ飛ぶようにしました。気になるユーザーのつぶやきを見にいきたい時など、重宝するはず。ついでにユーザー名って先頭に「@」を付けている事が多いので、追加。
列の横幅を広く【40行目】
<td style="width: 120px;"><?php echo htmlspecialchars ( $result->name ) ; ?></td>
width: ●●px で、指定の列幅になります。色々と書き方はありますが、とりあえず簡単に。
日付を見やすく【47,49行目】
<td><?php echo date('Y-m-d', strtotime((string) $result->created_at )) . '<br />' . date('H:i:s', strtotime((string) $result->created_at )); ?></td> <td><?php echo date('Y-m-d', strtotime((string) $result->status->created_at )) . '<br />' . date('H:i:s', strtotime((string) $result->status->created_at )); ?></td>
Twitterで取得した日時は、「UTC」という形式になっていて、ちょっと(かなり)見辛いです。そこで、表示する際にPHP側で形式を変更。「日付」と「時刻」の2列で表示されるようにしました。
つぶやき内のURLを自動でリンク化【48行目】
<?php $pattern = '/((?:https?|ftp):\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/u'; $replacement = '<a href="\1" target="_blank">\1</a>'; ?> <td><?php echo preg_replace( $pattern, $replacement, $result->status->text ); ?></td>
つぶやきの中には、外部へのリンクが入っている事もよくありますよね、特にリツイートした時とか。で、普通に取得しただけだと只の文字にしまうので、どうせならクリックしてすぐ飛べるように「http〜」で始まる部分を自動でリンクになるよう、正規表現と呼ばれるものを使って修正してみました。
さらに使いやすく・・
対象Twitterユーザーを自由に選択
さらに、使いやすくしましょう。上記までのコードでも、screen_name = '●●●●'
の部分を取得したいユーザー名を直接書き換えればOKですが、毎回コードファイルを開くのも面倒です。
そこで、表示画面内に「ユーザー名」を入力するボックスを設置します。よくある検索ボックスみたいなやつですね。これがあれば、フォロワー情報を知りたいTwitterユーザーが居た時に、今回作ったページを開いてそのTwitterユーザー名を入力すれば、すぐに情報がまとめて表示され、便利です。
いくつかやり方はありますが、今回はGET送信というものを利用。ブラウザに表示されているURLを見ると、URLの最後が「?xx=●●●&yy=▲▲▲」みたいになっている事、ありませんか?あれが正にGET送信という仕組みを利用しているページです。具体的にはそのURLに、パラメータを付加できる仕組みです。
まずHTMLの方には、以下のコードを追加。これで入力ボックスと検索ボタンが表示されます。
<form method="GET" action=""> <input type="text" name="id" /> <input type="submit" value="検索" /> </form>
ただ、これだけ追加しても思った通りには動きません。続いてコードの先頭に、以下の様なコードを新たに追加。(ここもセキュリティ面は色々端折ってます・・)
$twitter_id = $_GET['id'];
これで、今回作ったプログラムにパラメータを付加できるようになりました。例えば今回のプログラムがhttp://example.com/get_followers.php
というURLであれば、http://example.com/get_followers.php?id=oruzu_labo
というURLにすると、今回のプログラムに「id」という名前のパラメータとして「oruzu_labo」という値が渡されます。
この値が$_GET['id']
で取得できるので、$twitter_id
という変数に保存。これで、PHP上で渡された値(oruzu_labo)を利用できるようになります。
先ほど追加したフォームの入力ボックス部分がname="id"
となっているので、入力ボックスに調べたいTwitterユーザー名を入力して送信すれば、その内容が$twitter_idに設定されます。
あとは、ユーザー名を設定してた所をこの変数にすればOK。
// 特定ユーザー「@●●●●」のフォロワー情報を100件取得 $results = $TwitterOAuth->get('followers/list', array( 'screen_name' => $twitter_id, 'count' => '100', ));
とまぁこんな感じで、理想の結果を取得していくプログラミングに仕上げていきます・・。
ソートは面倒なのでExcelにお任せ
で、列ごとに順序を入れ替える機能ですが、自分でコード書くのが面倒臭くなってきたので(笑)とりあえずExcelで代用しようと思います。
実は今回HTMLをtableタグで書いてるおかげで、表示された結果を全て選択=>コピーしExcelに貼り付ければ、そのままExcelの表になっちゃうんですよね。
あとはオートフィルターなり並び替え機能なりを使えば、色んな形でデータを整理出来るようになります。表形式のデータ処理は、やはりExcel(や他の表形式ツール)に様々な機能があるので、こうした外部のツールとうまく組み合わせて目的を達成する事も、効率良く情報を処理する秘訣だったりします。
まとめ
さて、とりあえず今回は以上です。「エンジニアがTwitterでリサーチするなら?」というテーマで、プログラミングスキルを活かしながらマーケティングや集客を実践する者として、僕がどんな風にやっているか?をお話してきました。
本格的なプログラミングやシステム開発レベルになると、もっと考える事が色々と出てくるのですが、とりあえずその場で使うレベルでサクッとコードが書けると、こんな事が出来るようになります。
僕自身こうしたスキルをどんな風に活かしていくか?は日々試行錯誤しながらやっていますし、あまりこだわりすぎると逆にコードを考える時間の方が増えて本末転倒になったりするのですが(笑)プログラミングに関するスキルはかなり汎用的なものだと感じているので、簡単なものでも知っておくと色んな面で役立って面白いんじゃないかと思います。
興味のある方は、是非プログラミング習得にもチャレンジしてみては?
ではでは、今日はこの辺で。