Blog を使うようになって久しいが、Blog ping の仕組みをまったく知らないことに気がついて、昨日から調べている。探し方が悪いのか、意外とまとまったわかりやすい資料が無くて苦労している。
MyBlog.jp のインターフェースだと、記事自体の内容も送るので、てっきり ping もそうなっているのかと思っていたら、どうもそうではない。送るのはあくまでタイトルと、Blog の URI だけだ。RDFやRSSのURIではない。Blog のURI である。
Ping を受け取ったサーバーは、そのURIからページをGETして、そのページの中から、
<link rel=\”alternate\” type=\”application/rdf+xml\” title=\”RDF\” href=\”http://www.sakimura.org/modules/wordpress/wp-rdf.php\” />
<link rel=\”alternate\” type=\”application/rss+xml\” title=\”RSS 2.0\” href=\”http://www.sakimura.org/modules/wordpress/wp-rss2.php\” />
<link rel=\”alternate\” type=\”text/xml\” title=\”RSS .92\” href=\”http://www.sakimura.org/modules/wordpress/wp-rss.php\” />
<link rel=\”alternate\” type=\”application/atom+xml\” title=\”Atom 0.3\” href=\”http://www.sakimura.org/modules/wordpress/wp-atom.php\” />
のような行を探し、自分の欲するリソースファイルをゲットするという流れのようだ。
Ping 自体はPOSTで送られ、そのフォーマット自体は以下のような形である。
POST /RPC2 HTTP/1.0
User-Agent: Radio UserLand/7.1b7 (WinNT)
Host: rpc.weblogs.com
Content-Type: text/xml
Content-length: 250
< ?xml version=\”1.0\”?>
<methodcall>
<methodname>weblogUpdates.ping</methodname>
<params>
<param>
<value>これがタイトルです。</value>
</param>
<param>
<value>http://www.example.com/blogpage.html</value>
</param>
</params>
</methodcall>
レスポンスは:
HTTP/1.1 200 OK
Connection: close
Content-Length: 333
Content-Type: text/xml
Date: Sun, 30 Sep 2001 20:02:30 GMT
Server: UserLand Frontier/7.0.1-WinNT
< ?xml version=\”1.0\”?>
<methodresponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message</name>
<value>Thanks for the ping.</value>
</member>
</struct>
</value>
</param>
</params>
</methodresponse>
のような形。
実際に blog.goo.ne.jp に ping を打ってみる。すると、apache の log には以下のように見える。
(ここで ping を送信)
blog.goo.ne.jp – – [22/Feb/2005:00:54:55 +0900] \”GET /modules/wordpress/index.php
HTTP/1.1\” 200 63328 \”-\” \”-\”
blog.goo.ne.jp – – [22/Feb/2005:00:54:55 +0900] \”GET /modules/wordpress/wp-rss2.ph
p HTTP/1.1\” 200 27660 \”-\” \”-\”
まとめると、
のような形になっている。
ちなみに、Xoops 用の WordPress ME module では、この PING は、wp-admin/functions.php の中の、function pingWeblogs($blog_ID = 1) によって行われている。
さて、次は Trackback か…。
@_Nat Zoneをもっと見る
購読すると最新の投稿がメールで送信されます。
その後調べたところ、myblog などでは 1 の uri に index.rdf をくっつけたものを取りに来るようだ。どうりで更新されないわけだ。
wordpress内に[RSS]のマークがないことに気づき、いろいろ調べている。
わかりしだいご報告します。
私は見た目の問題で表示していませんが、Xoopsのブロック管理でWordpressの関連ブロックの詳細画面を開くと、RSSアイコンの表示・非表示を制御することができます。お試しください。
5月2日。
今日は仕事だ。
GWの真ん中だけどね。
でも仕事なのさ。
なんだろう。。。会社に人が少ない。。。
もう始業時間過ぎてるのに始業した感じがしない。
こりゃまいったね。
「気が乗らない」とはまさにこのこと。
春だからかな。。。
まぁ一日がんばろう