Web製作メモ帳

Web制作で気づいたことをつらつらと

はてなダイアリーで ping 送信先を追加する方法

Twitbacker - Pingでブログの更新情報をTwitterに!!

こんなツールを見つけた。Twitterユーザにとっては便利なツールである。しかし、はてなダイアリーではping送信先はてながデフォルトで用意したもの以外を追加で設定できないからな・・・。

と思ったので裏技を考えてみた。はてなの設定ではデフォルトping送信先を追加・変更はできないのだが、編集画面のトラックバックURLのテキストエリアにデフォルトでURLが表示される様にすればいいのである。

通常は空白のテキストエリアにデフォルトで文字を表示する様にするには、Firefox の場合だとGreasemonkey という拡張機能を使えばよい。「Greasemonkeyって何?どうやって使うの?」という人はGreasemonkey入門 〜よくわかるグリースモンキーの使い方 〜というページに分かりやすく書かれているので、そちらを参照していただきたい。

ここでは、そのGreasemonkeyでデフォルトトラックバックURLを指定する方法を紹介する。
以下の様なスクリプトでデフォルトトラックバックURLが設定できる。

Greasemonkeyの「新規スクリプト」で適当な名前と適当な名前空間をつけて、実行するページを"http://d.hatena.ne.jp/yourname/edit*"とする。ここでyournameはユーザIDである。たとえばこの日記だと"smartboy"。
そして以下の様なスクリプトを記述すればよい。スクリプト自体は割りと簡単にできる(少なくとも私はGreasemonkey を用意したりすることの方が面倒だった・・・。)

// ==UserScript==
// @name           hatena track
// @namespace      http://d.hatena.ne.jp/yourname/
// @include        http://d.hatena.ne.jp/yourname/edit*
// ==/UserScript==

//この配列にping送信したいURLを書く
var pingurl =["http://ping.blogmura.com/xmlrpc/xxxxxxxxxxxxx",
              "http://twitter.cross-poster.com/ping/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
             ];

var tb = document.getElementById("textarea-tburl");
tb.innerHTML=""; //この行は確認後編集画面に戻った場合にURLが重複しないように一旦内容をクリア
for (i=0;i < pingurl.length;i++){
	tb.innerHTML += (pingurl[i] +"\n");
}

この例ではTwitbackerだけではなく、にほんブログ村へのpingも設定してある。要は配列 pingurl に(Javascriptの配列の要領で)設定したいURLを列挙しておけばよいのである。
(複数のURLが指定できるように配列を使用して汎用性を持たせてみました。)

というわけで Firefoxを使っている人は試してみよう!
なお、使用はあくまで自己責任でお願いします。特に既にGreasemonkeyで別のスクリプトはてなダイアリーに対して使用している場合競合して誤動作する可能性があるので。
というかはてなping送信先URLを追加できるようにしてくれたらこんなことする必要もないのだが・・・。