RSS Ping

以前、weblogUpdates.pingは「更新した!」ということしかわからないので、これを元に最新記事を拾おうとかすると面倒極まりないとかいう話をmiyagawaさんがしていたわけですが、海の向こうではRSS Pingというメタ・データ付きで更新通知を送る規格が考えられているようです。

RSS Ping 1.0の方はExampleを見れば一目瞭然なように、

  • site_name: サイトのタイトル
  • site_title: サイトのURL
  • feed_uri: フィードのURL
  • item_title: 最新記事のタイトル
  • item_link: 最新記事のURL

をパラメータとしてHTTP GETでpingサーバーにリクエストしてやることにより更新通知をするというものみたいです。オプションとして、タグや最新記事のコピーが含まれるXML(最新記事のみを格納したRSS 1.0/2.0Atom 1.0)のURLを送信することも可能とか。

ドラフト段階のRSS Ping 2.0では、HTTP GETではなく最新記事のみを格納したRSS 1.0/2.0やAtom 1.0を下位に持つrss_pingをルートとしたXMLをHTTP POSTで送ってやることにより更新通知をするというものみたいです。他に更新通知スパム対策に認証の仕組みなんかも定義されるようです。

ひとつ前のエントリ、「Sam Cassellサヨウナラ」を例にとってRSS Ping 2.0の仕様に沿った送信するXMLを作るとすると、

<rss_ping version=2>
	<site_name>hail2u.net - Weblog</site_name>
	<site_uri>http://hail2u.net/blog/</site_uri>
	<feed_uri type="RSS 2.0">http://feeds.feedburner.com/hail2u/blog</feed_uri>
	<payload type="RSS 1.0 fragment"
		encoding="UTF-8"
		xmlns="http://purl.org/rss/1.0/"
		xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
		xmlns:dc="http://purl.org/dc/elements/1.1/">
		<item rdf:about="http://hail2u.net/blog/sports/good-bye_sam_cassell.html">
			<title>Sam Cassellサヨウナラ</title>
			<link>http://hail2u.net/blog/sports/good-bye_sam_cassell.html</link>
			<description>昨シーズンは怪我とフロントとの確執などで思うように実力を発揮できず、Wolvesがプレーオフ出場を逃した戦犯扱いされたSam Cassellがトレードされました。キュートな離れ目をもう見れないかと思うと悲しいですね(心を込めて)。</description>
			<dc:creator>Kyo Nagashima (mailto:kyo@hail2u.net)</dc:creator>
			<dc:subject>Sports</dc:subject>
			<dc:ate>2005-08-16T05:09:17+09:00</dc:ate>
		</item>
	</payload>
</rss_ping>

こんな感じっぽい(ExamplesがRSS 1.0にwebmaster要素とかあったりとかちょっとおかしいので勘)。payload要素のtype属性にfragmentを含むと、RSS 1.0のchannel要素やAtom 1.0のfeed要素を記述しなくてもOKとか(なんか場当たり的)。あまり考えずに実装できそうではありますね(blosxomなんかだとflavourと簡単なプラグインだけでいけたりするかも)。

通知する情報自体はフィードで提供する情報とほぼ等価なので、最新記事のみを格納したRSS 2.0やAtom 1.0を丸投げとかで良いような気がする。

いずれにせよ単なる更新通知にしか使えないweblogUpdates.pingよりもパワフルではあると思うので、こういった規格にリプレースされていくと面白いかも。