はてなアンテナに WordPress の更新を即通知する

2008年4月19日

はてなアンテナのチェック範囲の指定をして、とりあえず更新に応じて正しくアンテナに捕捉されるようになりましたが、やはり更新と同時にアンテナに反映してほしいものです。

はてなアンテナの手動更新チェッカーを用いれば OK なんですが、さすがにいちいち手動でやるのは非現実的。

WordPress の更新通知先として、ここが登録できれば万事解決なんですが、そうは問屋が卸さない。ブログからの Ping 送信とは異なる形で受け付けているので、Weblogs.com Ping Gateway to はてなアンテナ というスクリプトをかましてやると、上手いことやってくれるみたいです。

サーバに置いて、WordPressの管理画面から、設定→投稿設定→更新情報サービス に設置 URL を登録してやりました。さてさて、これで正常に動作しますでしょうかね?

……う~ん、スクリプト叩かれているんだけれど、その後にはてなアンテナのロボットが来ないなあ?

非同期型に変更

よく見たら、Weblogs.com Ping Gateway to はてなアンテナ (POE版)というエントリもあったので、こちらを試します。

POE は入っていなかったので、 CPAN からインストール。

リンク先のエントリ通りに、クライアントからリクエストを送ってみると、正常に送信・その後のロボット巡回も行われているようです。こっちを使おう。

WordPress からの更新通知が失敗する

ががが、WordPress から更新通知を送ろうとするとエラーが出てるようです。

Smart Update Pingerというプラグインで、更新通知のログを見てみましたが、

http://localhost:10080/?session=ping2hatena への ping 送信が失敗しました。
以下のエラーメッセージが返されました: “transport error – HTTP status code was not 200”

にようなエラーが返ってきてしまいます。あれこれ検索してみましたが、このエラーの根本的な解決策が見あたらなくてションボリ。現時点で、更新即通知はできてない状態です。

苦肉の策

で、WordPress の更新通知はエラー出るけれど、テストに使ったクライアントスクリプトは正常に動作するということで、どうも WordPress 側の問題な気がします。

しょうがないので、更新時に生成しているサイトマップファイル sitemap.xml.gz の更新時刻をチェックして、直近の日付だったらクライアントスクリプトを実行するというシェルスクリプトを書いて、 cron で回すという何とも本末転倒な感じに(^^;

まぁ、それでも、今までみたいに更新してから数時間後にアンテナに反映ではないかな。現在は5分おきにチェックしてるので、更新から数分でアンテナには反映されるようになっているはずです。

MovableType 4.1 でも試してみた

MovableType 4.1 をインストールして更新通知テストをしてみたところ、MT の管理画面で「更新通知に失敗」のエラーは出るけれど、スクリプトは実行されているみたいでした。

ってことで、WordPress の方の問題である可能性が高くなりましたね。まぁ、微妙な使い方ではあるけれど、XML-RPC の手順に従って更新 Ping 打ってるんだから、何とかならないものですかねー。