趣味と実益と現実逃避で更新されるblogです.
役に立つことから無意味なことまでさまざま書いていきます.
|
October 6th, 2006 |
XML_RPC2ではてブにアクセスしてみる(Read: 480145) |
参照: 機能変更、お知らせなど - はてなブックマーク日記 - (開発者さま向け) 特定サイトの被はてなブックマーク数を取得する XML-RPC API の公開について |
何でもいいので今までやってなかったようなプログラムを書いていこうってことでPEAR::XML_RPC2を使ってみました. |
XML_RPCは以前使っていたのですが超使いづらいですよねあれ.
XML_RPC2がPHP5専用であるのは知ってたのでマニュアルを参考に使ってみました. というかマニュアルのパクリです(痛 require_once 'XML/RPC2/Client.php'; if ( count( $_SERVER[ 'argv']) < 2) { echo "Usage: {$_SERVER[ 'argv'][ 0]} <URL>\n"; exit; } $options = array( 'prefix' => 'bookmark.' ); $client = XML_RPC2_Client::create('http://b.hatena.ne.jp/xmlrpc', $options); try { $result = $client->getTotalCount($_SERVER[ 'argv'][ 1]) . "\n"; // $result is a complex PHP type (no XMLRPC decoding needed, it's already done) print_r($result); } catch (XML_RPC2_FaultException $e) { // The XMLRPC server returns a XMLRPC error die('Exception #' . $result->getFaultCode() . ' : ' . $e->getFaultString()); } catch (Exception $e) { // Other errors (HTTP or networking problems...) die('Exception : ' . $e->getFaultString()); } ?> $ chmod +x ./bcount.php $ ./bcount.php http://d.hatena.ne.jp/hatenadiary/ 5270 $ ./bcount.php http://blog.poyo.jp/ 244 はてなのXML-RPCのメソッド一覧どこにあるんだろ. 少しだけ面白くなってきたので今度探してみよう. 処理としては,prefixでメソッドの接頭語を追加.今回は「bookmark.getTotalCount()」を使いたかったので,prefixに「bookmark.」を追加しました. ちなみにencodingでXMLのエンコーディングを指定できるので,マルチバイトを使用するときはUTF-8とかそれっぽいのを指定するといいでしょう.proxyでいわゆるプロキシの指定もできます. 他にもマニュアルによるといろいろ指定できるみたいです.XML-RPCに詳しくないのでごめんなさい. PEAR::XML_RPC2はPHP 5専用なのでPEAR::XML_RPCとは全く違うスタイルですっきりとコードを実装できるようです. サーバーサイドも用意されているし,他のPEARのウェブサービスパッケージ群同様にPEAR::Cache_Liteも併用したキャッシュ機能付きコードも簡単に書けるので,これからのスタンダードになるか? って感じですね. |
ELF Oct 6th, 2006 06:21 / [ 編集 ]
[ コメントする ] [ トラックバック(1) ] [ ] |
[ POST ] [ AddLink ] [ CtlPanel ]
<< | 7月 | >> | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
* | * | * | * | * | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | * | * | * | * | * | * |