しかし更新pingを送信できるのはブログだけではない。pingサーバや更新pingの仕様は公開されているため、指定の書式のデータを送信するプログラムを用意すれば、ブログ以外からも更新pingを送信することが可能だ。pingサーバの仕様は、http://www.xmlrpc.com/weblogsComで参照できる。
更新pingの動きは、XML-RPCを使って更新サーバへと送信する流れだ。XML-RPCはWebサービスを呼び出す手法の一種であり、XMLを使ってWebサーバ上のプログラム(メソッド)を呼び出す仕組みだ(関連リンク)。また、XML-RPCは、同じくWebサービスを呼び出す仕組みのSOAPと似ているが、引数を特定のタグで囲んで送信するだけという単純な書式なのが特徴だ。
更新pingをpingサーバに送り込むには、次の形式のデータを、HTTPのPOSTメソッドで送信する。POST先のURL(更新pingを受け取るWebアプリケーションのURL)は、pingサーバーによって異なり、pingサーバーの「pingサーバーの使い方」や「ヘルプ」といったコンテンツページに記載されている。
Content-Type: text/xml Content-Length: 下記データのバイト数 <?xml version="1.0" encoding="UTF-8"?> <methodCall> <methodName>weblogUpdates.ping</methodName> <params> <param> <value>自らのブログ名(タイトルなど)</value> </param> <param> <value>自らのブログのURL</value> </param> </params> </methodCall> |
pingサーバは、上記のような内容の更新pingデータを受け取ると、それを処理し、戻り値として次に挙げるような形式のデータを返す。ただしmessageはオプションであるため、含まれない場合もある。
<?xml version="1.0"?> <methodResponse> <params> <param> <value> <struct> <member> <name>flerror</name> <value> <boolean>0</boolean> </value> </member> <member> <name>message</name> <value>サーバーからのメッセージ</value> </member> </struct> </value> </param> </params> </methodResponse> |
flerrorの値が、処理が成功したか失敗したかを示す値だ。0(True)の場合には成功、0以外(False)の場合には失敗を示す。
更新pingを受け取ったpingサーバは、それを整理してリンク集などを構成する。この際、どのような処理を行うかは、pingサーバ側(管理者)の自由だ。
しかしpingサーバの仕様では、受け取った更新pingを、XML形式で公開する方法について規格化されている。これを「changes.xml」という。changes.xmlの規格は、「How changes.xml works」(関連リンク)で参照できる。
changes.xmlは、次のように、weblogUpdates要素とweblog要素からなるXML形式のデータだ。weblog要素が、それぞれのブログコンテンツを示している。
<?xml version="1.0" encoding="UTF-8" ?> <weblogUpdates version="1" updated="最終更新日時" count="更新された回数"> <weblog name=" ブログタイトル" url="ブログのURL" when="最終更新日時からの差分秒数" /> <weblog name=" ブログタイトル" url="ブログのURL" when="最終更新日時からの差分秒数" /> …以下必要なだけweblog要素が続く </weblogUpdates> |
changes.xmlを使うと、アプリケーションでデータの加工処理ができる。たとえば、XSLTで任意のスタイルのHTMLページに変換したり、新着ブログを自動巡回するツールを作ったりするといった使い道が考えられる。
このようにpingサーバは、いわゆる新着ブログのリンク集として機能する側面を持つ。そこでブログを更新した時に、pingサーバへと更新pingを送信すれば、自らのブログが人の目に触れやすくなる。
Copyright © ITmedia, Inc. All Rights Reserved.