ブログ更新ping(weblogUpdates.ping)のxmlrpcの仕様

| コメントをどうぞ

概要

かれこれ10年以上前に、ブログを更新する際にpingを飛ばして、検索エンジンのクローラーに見つけてもらうためのサービスが山のようにあったと記憶している。その時は、記事1件ごとにurlとtitleを飛ばしていた気がした。
今回wordpressを立ち上げるに当たって、更新通知サービスの設定があり、デフォルトではPing-O-Maticのみが設定されていた。
そこで、更新通知サービスとはどんな仕組みなのか調べてみた。

XML-RPCとは

XML-RPC
1998年、ユーザーランド・ソフトウェアがマイクロソフトと共同で開発したSOAPよりむかしからある。あとから出てきたPOX over HTTPに近いかも。

weblogUpdates.pingとは

ブログなどのウェブサイトを更新した際に通知する。現在のところ、この通知を受け取るのはリアルタイム検索エンジンをサービス提供しているのがほとんどだが、むかしは受け取った通知をストリーミングで垂れ流しにして他の検索エンジンに見つけてもらうサービスもあった。

weblogUpdates.pingリクエスト

HTTPで以下のXMLをボディに入れて、POSTする。
1番目のparamにサイト名、2番目のparamにサイトURLを設定する。

<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>infoScoop Developer&#039;s Blog | infoScoopは大手企業で実績のあるOpenSocial対応の企業情報ポータルです。</value></param>
<param><value>http://www.infoscoop.org/blogjp/</value></param>
</params>
</methodCall>

weblogUpdates.pingレスポンス

成功すると、以下のようなXMLが返ってくる。
Ping-O-Maticに投げたので、さらに9個のブログ更新pingサービスに転送された。

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member><name>flerror</name><value><boolean>0</boolean></value></member>
<member><name>message</name><value><string>Pings being forwarded to 9 services!</string></value></member>
</struct>
</value>
</param>
</params>
</methodResponse>

ブログ更新pingサービスの仕組み

POSTされたサイトURLのページを取得し、RSS auto discoveryによってフィードURLを取得し、記事URLのリストを得ることができる。

ブログ更新pingサービスのURLリスト

世の中に紹介されていて、実際に手で投げてみて、flerror=0が返ってきたブログ更新pingサービスのURLです。

http://rpc.pingomatic.com/
http://api.my.yahoo.co.jp/RPC2
http://blog.goo.ne.jp/XMLRPC
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://ping.dendou.jp/
http://ping.fc2.com/
http://ping.freeblogranking.com/xmlrpc/
http://pingoo.jp/ping/
http://rpc.weblogs.com/RPC2
http://www.bloglines.com/ping
http://www.blogpeople.net/servlet/weblogUpdates
http://xping.pubsub.com/ping/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>