« Moblin.org/Ubuntu ME vs MontaVista。いずれ業界変動かも | メイン | MovableType beta7が出ましたね »

GoogleのBloggerで自動で更新pingを送信する方法

Googleの無料blogホスティングサービスのBloggerですが、更新pingがWeblogs.comにしか送信できません。いっぱい送った方がSEO的にいいとかいう話もありますが、手動で送るのは面倒です。

またFeedBurnerなどRSS関連のサービスやソフトを使おうとするとフィードの更新がポーリング周期になってしまうのはうれしくありません。FeedBurnerがフィードを取り込んではじめてRSSリーダなどに反映されるため、さらに遅くなるからです。また更新pingを送信すればFeedBurnerは即時にフィードを更新してくれますが、順序やタイミングとりも必要です。

対策として、簡単なping送信スクリプトをでっち上げて更新メールをきっかけにpingを送ってみました。新規の時のみで既存記事の編集は捉えられません。まあ誰でも考え付くものなので、どなたか既にやっておられるかもしれませんが。。。

ping送信スクリプトの設定 

スクリプトはXMLRPC::Lite(SOAP::Lite)を使っておりとても短いです。中は見ればわかると思います。 
ping-blogger.pl.txt(update 7/7/20)をダウンロード。エディタで開いて以下の項目を設定してください。

  • ご自分のblog URL
  • ping送信先リスト(デフォルトでは日米FeedBurnerとpingooだけです^^;)
  • 送信間隔
    • 最初のサーバはFeedBurnerを想定しており、次との間隔は15秒です。
    • 次のサーバからはデフォルトでは3秒間隔で送信します。
ファイルをping-blogger.plとリネーム。サーバ上の(出来ればパスの通った)適当な場所にコピーして実行権を与えてください。

procmail方式

Blogger標準機能である記事投稿時のメール送信機能を使ってメールを送信、これをきっかけにping送信。メール処理時間を考えても、数秒から数十秒でpingが送られます。使ってみると、ほぼリアルタイムに近い感覚になります。
ただしDOSアタックに弱そうなのと、スパム対策は必須。
必要なもの 
  • Unix/Linuxサーバ
  • procmailが使えること
  • perlとXMLRPC (perl-SOAP-Lite)
 手順
  1. ping送信スクリプトは設置済みとします
  2. ping専用アカウントを作る(推奨) or既存メールアカウント
  3. procmailのレシピ例(.procmailrcに追加)
    Bloggerの更新メールかどうかチェックするようなレシピを適当に書く。以下の例ならばBloggerのメールアドレス、メールアドレス、必要ならばスクリプトのパスを設定
    :0hwc
    * ^From:.*<BLOGGER_MAIL_ADDRESS>
    * ^To:.*<YOUR_MAIL_ADDRESS>
    * ^Return-Path:.*blogger.bounces.google.com
    |ping-blogger.pl

  4. bloggerの管理画面から"設定"=>"メール"で1のアカウントにメール送信

cron方式

cronとスクリプトでrssをポーリングし、更新があったらpingを送信。
チェックの間隔が余り短いとネットワークや負荷が上がってしまうため、あまりよろしくなさそうです。
ただしFeedBurnerやRSSリーダのポーリング周期に追加する形でcron jobが走ることになるので、さほど速くなくても平均的な更新時間が速くなるはずです。
例えばサービス側が1時間に一回のチェックの場合は15~30分でいいのでは。
タスクスケジューラと組み合わせればWindowsでも同じようなことが出来るかも。
必要なもの
  • Unix/Linuxサーバ
  • perlとXMLRPC
  • cronが使えること
  • wget/touch/shellなど
手順
  1. ping送信スクリプトは設置済みとします
  2. 更新チェック用シェルスクリプトもperlスクリプトと同様に設置
  3. crontab -eでシェルスクリプトを定期的に実行 

以上な感じです。サーバの管理が出来る方にはなんのことはない話ですが。

適当にサービス化?

使ってみたいとのご希望があるのなら、信頼性はありませんが、URLの登録とメール送信だけで使って頂けるようにしてみても便利かもしれないと思っています。ご意見をお待ちしています。

今のところうまく動いてるのでWebのインターフェースでも作ればいいかもですね。 

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/379


コメント (5)

taka:

bloggerで更新pingを打つ方法を探してました。スクリプトは便利そうなので使わせていただこうと思ってます。よろしくお願いします。

mock:

ping-blogger.pl を使わせていただこうと思っています。

設定を行ったあと、アップロードし「実行権を与えて下さい」とこことですが、パーミッションは何が適切でしょうか?
704、705あたりになるでしょうか?

そして、動作しているかどうかの確認はどのようにすれば良いですか?


素人質問ですみません。よろしくお願いします。

yamap:

古い情報ですがご参考になって幸いです。

実行権ですがサーバによっても変わると思いますが。。。

まず704は意味がありません。
基本的にwebベースで実行するものではないので普通に755辺りでよろしいのでは。

JHC:

こんにちは。ping-blogger.plを使わせていただいています。ありがとうございます。1点、logファイルを指定して、空ファイルを用意しているのですが、何も書き込まれません。何か考えられる原因はありますでしょうか。pingの送信は無事に行われているのですが・・・。

yamap:

こんにちは。
ログファイルへのパーミッションはいかがですか?
apacheからの書き込みが出来るようにしておかねばです。
あとはパスを絶対パスにしてみるとかでしょうか。

touch /tmp/LOG
sudo chmod +rw apache.apache /tmp/LOG

なんていう感じでいかがでしょう。

コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年07月19日 11:27に投稿されたエントリーのページです。

ひとつ前の投稿は「Moblin.org/Ubuntu ME vs MontaVista。いずれ業界変動かも」です。

次の投稿は「MovableType beta7が出ましたね」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー