Twitter API と file_get_contents でかんたん Twitter クライアント
こんにちは、飯塚です。
今回は第2回初心者勉強会で少し取り上げた、twitter API を使った情報の取得方法について説明します。
勉強会の最後に、下記のようなコードを取り上げました。
<?php $arr = json_decode(file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?include_rts=true&screen_name=tushuhei")); foreach ($arr as $element) { var_dump($element->text); }
このコードで、[twitter:@tushuhei] のつぶやき最新20件を取得して、つぶやきの内容だけを取得することができます。
取得するものを public_timeline (世界中の人の最新のつぶやき)に変えたり、
if 文を加えて特定の文字列が含まれるつぶやきだけを抜き出したり、
つぶやきだけでなくその日付や場所に注目したりするだけで、一気にバリエーションが拡がります。
API の URL ってどうやってみるの?
URL を以下のように分解して考えるとわかりやすいです。
https://api.twitter.com/1/ <- 何のAPI? statuses/user_timeline <- Twitter API の statuses/user_timeline を使う json <- json 形式で取得 ? <- ここからパラメータを追記します include_rts=true <- RT を含む & <- さらにパラメータを記す screen_name=tushuhei <- @tushuhei のタイムライン
と考えるわけです。
この URL で取得した json 形式のデータを json_decode で PHP で扱える形に直して扱います。
パラメータの詳細はその API の仕様ページに書いてあります。
これをブラウザに出力するには
とっても簡単で、このファイルを DocumentRoot に置けば、ブラウザから見ることができます。
※ DocumentRoot がどこか分からない![mac 向け]
そのときは、Apache の設定ファイルを見ます。
sudo vim /etc/apache2/httpd.conf
とした後、DocumentRoot で検索をかけて、どこに DocumentRoot が設定されているか確認しましょう。
設定を変更したら、必ず
sudo apachectl configtest
で Syntax OK (文法チェックOK)を確認した後、
sudo apachectl restart
apache を再起動して変更を反映させましょう。
(「システム環境設定」から「Web共有」を一度オフにして再度オンにすることでも同様の操作ができます。)
年末年始にちょっとしたアプリを作ってみては如何でしょうか?
よいお年を!(^_^)/
追記(2012年1月11日)
ただ var_dump で出力するだけじゃ汚くてやだ!という方のために。
このように書けば、HTML で出力結果を自在に表現できます。
あとは style 属性や CSS を駆使してデザインを仕上げましょう!
<?php $arr = json_decode(file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?include_rts=true&screen_name=tushuhei")); ?> <html> <head> <title>かんたん Twitter</title> <meta charset="utf-8"> </head> <body> <? foreach ($arr as $element){ ?> <? echo $element->text ?> <br> <? } ?> </body> </html>