アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Twitter-APIを使ってみました

こんにちは、中川です。

今週のPHPプロのメルマガで、


「現在発売中の日経ソフトウエア2010年3月号に記事を書きました!Web APIに
ついての特集で、今はやりのTwitterと、Google ChartのAPIを活用したPHPの
アプリケーションを作成する内容になっています。ぜひ読んでみてください。
皆さまのご意見やご感想をお待ちしています! 」By Katsuhiro Ogawa

こんな序文を見つけました。

ブログネタに困っていた時だったのもあり、
また、現在担当しているプロジェクトで使うかもしれないということで、
TwitterAPIをちょっと触ってみました。

まずは、APIの仕様について。

http://apiwiki.twitter.com/

ここで、原文で確認できるようです。

日本語に翻訳している方がいるようです。ありがたいですね。
http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html
※更新されているのか不明です。

それでは、深く調べたりする前にとりあえずさわることにします。
今回は、さくっと試してみたい程度ですので、認証などが一切必要ない、
public timelineの検索APIを試してみます。

といいましても、検索APIは至って簡単に呼び出しが行えるようですね。

http://search.twitter.com/search.json?q=asial

これで、json形式で、キーワードにasialを含むつぶやきが取得できます。

RSS形式だと、以下のように取得できるんですね!
http://search.twitter.com/search.rss?q=asial

今回はサーバ側のコードも必要ないように、
JavaScriptのみで利用したいと思いますので、
JSONP形式で返却してもらうように呼び出しを以下のようにしてみました。



<script type="text/javascript" src="http://search.twitter.com/search.json?q=asial &rpp=100 &callback=myfunc"></script>


・rppで「発言」の数を指定する。
・callbackでコールバック関数名を指定する

これで、このscriptタグを書くより前に、myfunc関数を定義しておけば返却結果のjsonを引数に与えて実行してくれます。

実際に返却されるjsonは以下のような形式のようです。※実際には改行されていません。



results: [
  {
      profile_image_url: http://a3.twimg.com/profile_images/638624053/___2009-12-16_20.32__normal.jpg (string)
      ,created_at: Thu, 28 Jan 2010 08:29:07 +0000 (string)
      ,from_user: _mozk (string)
      ,to_user_id: null (object)
      ,text: http://blog.asial.co.jp/540 (string)
      ,id: 8315548004 (number)
      ,from_user_id: 362873 (number)
      ,geo: null (object)
      ,source:  &amp;lt;a href= &amp;quot;http://twitter.com/ &amp;quot; &amp;gt;web &amp;lt;/a &amp;gt; (string)
  },
  ・
  ・
  ・


JSから扱いやすい、非常に親切な結果を返してくれるようですね。

これだけで、あっさりtwitterのデータを引っ張ってこれました。

実際に見た目をきれいに整えたのが、以下になります。



※ソースは、IFRAME内のソースを表示で確認できます。

Twitter-APIを使う上で注意しなければならないのが、利用回数制限があることです。
APIの呼び出しは、IPアドレス単位で、1時間に150回程度の用です。
今回はJavaScriptで呼び出しているので、クライアントのIP単位になるのでしょうから、
制限は問題なさそうですが、サーバ側からAPIを呼び出す場合は、キャッシュなどの注意が必要そうですね。
尚、この回数制限の状況も、APIから取得・確認できるようです。

http://twitter.com/account/rate_limit_status.xml

非常に親切ですね!!

と、このようにTwitterAPIが充実しているのもすごいのですが、
非常に簡単に使い始められるのも魅力ですね。
自身のサイトなどのAPI設計にも非常に参考になりました。

また、ネット上に情報も多いので、是非みなさんもいろいろ試してみてください。