こんにちは。あるいはこんばんは。もしかして:おはようございます。
Fusic仁井と申します。
Fusic Advent Calendarの二番手になりました。二番手と聞くと緑の弟を思い出します。
さて何を書こうかと思ったのですが時間もないことですし最近やったことについてまとめてみたいと思います。
タイトルのとおり、Twitterの検索です。
Twitter の検索
というかそもそもTwitterの検索とは何ぞ、という方のために説明を。
search.twitter.com/
ここです。というだけではやっぱり不親切ですので。
ページをご覧いただければわかるかとは思いますが、上記ページではTwitterに投稿されたつぶやきの検索ができます。私はコレを使いハッシュタグの検索などしておりました。
このページ、単純にブラウジングで参照するだけでなく、json形式で検索結果を受け取ることができるのです。
まあ素敵。
というわけで、今回はその簡単な使い方と注意点などについて、軽くまとめさせていただきます。
検索結果をPHPでjsonで受け取る
というわけで早速始めますが、いきなり終わらせたいと思います。
search.twitter.com/search.json?q=[検索したい文字列]
これです。
これで検索結果をjsonで受け取ることができます。
PHPであればこのURLを file_get_contents して、 json_decode をすれば、Twitterの検索結果を簡単に扱うことができます。非常に簡単ですね。
実際のコードは以下の通りです。
$search = "検索文字列"; $url = ('http://search.twitter.com/search.json?q='. $search .'&rpp=100'); $result = file_get_contents($url); $data = json_decode($result); $results = $data->results; foreach($results as $key => $result) { // 好きに弄り回しましょう } |
このような次第です。
注意点
最後に、注意すべきとされている点と、私自身がちょっと引っかかった点について。
まず、注意すべきとされている点。それは、ハッシュタグの検索です。
ハッシュタグとは、Twitterにツイートを投稿するときに #mhp3 のように、半角シャープを付た文字列です。詳しい説明については、実際にツイッターのサイト等を参照していただきますよう。
このハッシュタグを検索する場合、先程のコードで言うと $search に直接値を入れてはいけません。
# は %23 へ置き換えて下さい。
これが注意すべき点です。
それからもう一つ。こちらは私が引っかかった点です。
検索結果を実際に見ると様々なデータが返ってきています。
そのなかの一つに時間があります。こちら投稿時間なのですが、時間がずれています。当然ですが基準時が日本のものではないせいです。
そのため、もし投稿日時などを利用する場合は時間を合わせる必要があります。
時間にして9時間のズレがあるので、 date で合わせても良いですが、もっと楽に合わせる方法もあります。
// 時刻を日本に合わせる $jpn_time = date('Y-m-d H:i:s', strtotime($result->created_at)); |
これで表示時刻が日本時間に修正されます。正確にはサーバのタイムゾーンに合うのでしょうか。そこは調査しきれていませんのでご容赦を。
ということでTwitterの検索でした。
検索の際にはオプションも付けられます。例えば、今回サンプルとした検索 URLの最後の『rpp=100』は、検索結果の件数を指定しています。指定しなければ15件、最大100件を指定できます。
それでは、目的に沿った検索ライフを。