Twitter-APIを使ってみました
- 2010/02/05
中川善樹
こんにちは、中川です。
今週のPHPプロのメルマガで、
ブログネタに困っていた時だったのもあり、
また、現在担当しているプロジェクトで使うかもしれないということで、
TwitterのAPIをちょっと触ってみました。
まずは、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形式で返却してもらうように呼び出しを以下のようにしてみました。
・rppで「発言」の数を指定する。
・callbackでコールバック関数名を指定する
これで、このscriptタグを書くより前に、myfunc関数を定義しておけば返却結果のjsonを引数に与えて実行してくれます。
実際に返却されるjsonは以下のような形式のようです。※実際には改行されていません。
JSから扱いやすい、非常に親切な結果を返してくれるようですね。
これだけで、あっさりtwitterのデータを引っ張ってこれました。
実際に見た目をきれいに整えたのが、以下になります。
※ソースは、IFRAME内のソースを表示で確認できます。
Twitter-APIを使う上で注意しなければならないのが、利用回数制限があることです。
APIの呼び出しは、IPアドレス単位で、1時間に150回程度の用です。
今回はJavaScriptで呼び出しているので、クライアントのIP単位になるのでしょうから、
制限は問題なさそうですが、サーバ側からAPIを呼び出す場合は、キャッシュなどの注意が必要そうですね。
尚、この回数制限の状況も、APIから取得・確認できるようです。
http://twitter.com/account/rate_limit_status.xml
非常に親切ですね!!
と、このようにTwitterはAPIが充実しているのもすごいのですが、
非常に簡単に使い始められるのも魅力ですね。
自身のサイトなどのAPI設計にも非常に参考になりました。
また、ネット上に情報も多いので、是非みなさんもいろいろ試してみてください。
今週のPHPプロのメルマガで、
- 「現在発売中の日経ソフトウエア2010年3月号に記事を書きました!Web
APIに - ついての特集で、今はやりのTwitterと、Google
ChartのAPIを活用したPHPの - アプリケーションを作成する内容になっています。ぜひ読んでみてください。
- 皆さまのご意見やご感想をお待ちしています!
」By Katsuhiro Ogawa
ブログネタに困っていた時だったのもあり、
また、現在担当しているプロジェクトで使うかもしれないということで、
TwitterのAPIをちょっと触ってみました。
まずは、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: &lt;a href=&quot;http://twitter.com/&quot;&gt;web&lt;/a&gt; (string) }, ・ ・ ・
JSから扱いやすい、非常に親切な結果を返してくれるようですね。
これだけで、あっさりtwitterのデータを引っ張ってこれました。
実際に見た目をきれいに整えたのが、以下になります。
※ソースは、IFRAME内のソースを表示で確認できます。
Twitter-APIを使う上で注意しなければならないのが、利用回数制限があることです。
APIの呼び出しは、IPアドレス単位で、1時間に150回程度の用です。
今回はJavaScriptで呼び出しているので、クライアントのIP単位になるのでしょうから、
制限は問題なさそうですが、サーバ側からAPIを呼び出す場合は、キャッシュなどの注意が必要そうですね。
尚、この回数制限の状況も、APIから取得・確認できるようです。
http://twitter.com/account/rate_limit_status.xml
非常に親切ですね!!
と、このようにTwitterはAPIが充実しているのもすごいのですが、
非常に簡単に使い始められるのも魅力ですね。
自身のサイトなどのAPI設計にも非常に参考になりました。
また、ネット上に情報も多いので、是非みなさんもいろいろ試してみてください。
コメント
コメントフォーム
トラックバック
最近の記事
- <Symfony Componentsシリーズ(2)> Symfony 2の秘密兵器: Request Handler [2010年03月11日 : 小川雄大]
- <Symfony Componentsシリーズ(1)> オブジェクトをつなぐEvent Dispatcher [2010年03月11日 : 小川雄大]
- Symfony 2のアプリケーション構成を読む [2010年03月04日 : 小川雄大]
- サーバサイドJavaScriptの「node.js」を試してみました [2010年03月03日 : 中川善樹]
- お初の山梨旅行 [2010年02月26日 : 阿部恵]
- OpenVPNで拠点間VPN [2010年02月25日 : 門脇優児]
- OracleでのLIMITの記述あれこれ [2010年02月24日 : 松田惇]
- symfony DoctrineのTIPS その2 [2010年02月18日 : 牧野克俊]
- KeyRemap4MacBookで自分好みにキーをリマッピング [2010年02月15日 : 熊谷裕志]
- 株式会社アシックス社向け、ランナーのためのゲイトアナリシス・ソフトウェアの共同開発 [2010年02月12日 : 小林有佳]



https://code.google.com/p/twitter-by-php/source/browse/trunk/Smarty/plugins/function.twit_fri_time.php
https://code.google.com/p/twitter-by-php/source/browse/trunk/Smarty/plugins/function.twit_use_time.php