自分に便利なRSSフィードをたくさん作っているとだんだんと作業に「慣れて」来てしまって、仕様とかいちいちチェックせずに手癖やコピペで済ませて確認もしなくなってきてしまうのですけど、ふと思い立って自分が作っているRSSフィードをW3Cの「Feed Validation Service」でチェックしてみたらば意外なほど間違ってたので慌てて修正。
W3C Feed Validation Service, for Atom and RSS
よくある間違い(ないしは設定漏れ)の例としては、こんな感じ。
- 「Content-Type」が「text/html」になっている → フレームワークに設定を追加し「application/rss+xml」で送信
- pubDateの形式がRFC2822に準拠していない → Atomの形式(RFC3339)になっていたので変更
- lastBuildDateの形式がRFC2822に準拠していない → Atomの形式(RFC3339)になっていたので変更
- managingEditorが有効なメールアドレスではない → 架空のメールアドレスで対応
- managingEditorに本名が入っていない → ハンドルネームなどを追加
- 「atom:link rel=”self”」がない → そのフィード自身のURLをchannel内の要素として追加。「xmlns:atom=”http://www.w3.org/2005/Atom”」を削除してしまっている場合にはそれも追加。
- 「item」要素「title」に実体参照でない記号を含めるな → 対応。
- 「item」要素に「guid」が無い → 一意の標を追加。大体の場合、パーマリンクで事足りる
- 「item」要素「description」の「CDATA」には指定されたタグ以外使うな → 「blockquote」を使ったら怒られた……でもコレはどうしようもないんだよね。Tumblr的な意味で
で、validになったRSSフィードが例えばこれ。
http://rss.nplll.com/kimagure_camera/
「blockquote」以外はどれもテンプレートしっかりしてれば間違えないだろっていう話なんだけど。特に日付の形式間違ってたのは自分でもびっくりしました。引くわー。RSSリーダーが読み込んでるから別に良いかなと思ってたけど、すべてのRSSリーダーで確認出来てるわけじゃないし、そもそもRSSリーダーで使うことだけを想定して作ってるわけでもないしなあ。
W3C準拠が絶対かどうかはともかくとして、この辺はきちんと確認しておかないといけないよねと反省しました。
大事。