RESTなWebサービスをPHPで操作する
ブックマークの編集
既存のブックマークを編集することもできます。それには、「http://b.hatena.ne.jp/atom/edit/ページのID」にPUTプロトコルでアクセスします。ページのIDは、ブックマークを追加したときに得られたID(数値)を使います。
また、アクセスの際には、リスト5のようなXMLを送信します。タイトルとコメントはどちらかを省略することができます。
--------------------------------------------------------------------------------
【リスト5】 ブックマークを編集する際に渡すデータ
--------------------------------------------------------------------------------
ブックマークのコメントを編集するプログラムを作ると、リスト6のようになります。5行目の「ページのID」と6行目の「コメント」を書き換えると、動作を試すことができます。
--------------------------------------------------------------------------------
【リスト6】 ブックマークのコメントを編集するプログラム
require_once 'HTTP/Request.php';
require_once 'auth_wsse.php';
$eid = ページのID;
$comment = 'コメント';
$req =& new HTTP_Request("http://b.hatena.ne.jp/atom/edit/${eid}");
$req->setMethod(HTTP_REQUEST_METHOD_PUT);
set_auth_wsse($req);
$postdata =
HERE;
$req->addRawPostData($postdata);
if (PEAR::isError($req->sendRequest())) {
exit('通信エラーが発生しました');
}
$code = $req->getResponseCode();
if ($code == 200) {
print "ブックマークの編集に成功しました";
}
else {
print "エラーが発生しました:コード = ${code}\n";
}
?>
--------------------------------------------------------------------------------
このプログラムでは、7行目と8行目によって、「http://b.hatena.ne.jp/atom/edit/ページのID」にPUTプロトコルでアクセスするようにしています。
このプログラムを実行した後、はてなブックマークにログインして、編集後のブックマークを見てみると、コメントが変わっていることが分かります(図3)。
今回のまとめ
ここまでで見てきたように、はてなブックマークでは、AtomAPIで通信するプログラムを作ることによって、ブックマークの追加や編集を行うことができます。
今回は、プログラム言語としてPHPを使いました。しかし、PHPだけでなく、ほかの言語ではてなブックマークにアクセスしてブックマークを操作することもできます。例えば、Visual BasicやVisual C++を使って、はてなブックマークを操作するためのWindows用のデスクトップ・アプリケーションを作る、といったことも可能です。
また、今回はスタンド・アローンのプログラムを作りましたが、既存のシステム用にブックマーク操作を行う拡張機能を作ることも考えられます。例えば、ブログに記事を投稿すると同時に、その記事を自動的にブックマークする、といった拡張機能を作ることが考えられます。
このように、RESTで操作できるWebサービスは、ほかのプログラムとの連携によって、さまざまな使い方をすることができます。
前回(第2回)と今回(第3回)は、Webサービスにアクセスする方法を紹介しました。最終回の次回(第4回)では、Webサービスを作る例を紹介します。
【参考文献】
『RESTful Webサービス』(Leonard Richardson、Sam Ruby著、山本 陽平監修、株式会社クイープ翻訳、オライリー・ジャパン発行、発行年:2007)