WordPress のフォーラムに次のような話題がありました。
「コメントが来たことを知らせる方法をメール以外でなにかほしい」
現在、ワードプレスを数人で管理し、記事を書いています。
私たちの環境では、ディスカッション設定の自分宛のメール通知のところにある「コメントが投稿された時」にチェックを入れています。
(中略)
メールに気づく派も気づかない派も、各ユーザーがメールの通知以外でコメントに気づくことが出来るようにしたいと思っています。
そこで私は、以前に書いた「Jabber と WordPress」を示しながら、ただし XMPP サーバーを確保できないと難しいので一般的ではないと回答しました。
さて質問文をよく読むと、
- 投稿にコメントがついたことの通知を受け取るのは、その投稿の作者のみでよい
で済みそうです。一度の通知の送り先は1人でよい、ということであれば、先に示したややこしい仕組みは必要ありません。
やはりインスタントメッセンジャー(IM) の XMPP を利用した通知を行うことにします。
管理者の作業
公式プラグインのサイトから XMPP Enabled というプラグインをインストールします。
さらに次のプラグインをインストールします。これは XMPP Enabled と同じ作者による、投稿のあった際に XMPP で通知する Juick Crossposter というプラグインを、コメントの場合に置き換えて作り直してみたものです。
また管理者は次の節の脚注の作業も必要に応じて行ってください。
【追記】 これを元に、一般化して、プラグインを公開しました。「WordPress からのほぼすべての通知を XMPP で送信するプラグイン wp_mail to XMPP」を参照してください。
各投稿者の作業
先の質問では複数の投稿作成者がいるようです。そこでそれぞれが通知を受け取るためには、各人の PC やスマートフォンなどに XMPP クライアントを用意してもらいます。また、各人に XMPP のアカウント(JID)を取得してもらいます。WordPress.comのアカウントを取得すれば自動的に (アカウント)@im.wordpress.com
が JID になるのでそれを利用できます。
さて投稿しているブログサイトで、各人は自分のプロフィールのページにある「Jabber/Google Talk」の欄に取得した JID を入力しておきます [][]。
これで設定は完了です。コメントがつくと、そのコメントがつけられた元の投稿の作者に XMPP で通知が行きます。
Jabber/XMPP のサーバー
ejabberd 2.1.11 がリリースされたようです。
今回は事前に「翻訳を送って」と連絡があったので、以前の版にずいぶん手を入れた日本語訳を同梱してもらいました。どれほどの人が日本語版を利用しているのかさっぱり不明ですけれども。
XMPPクライアント
Gajim の0.15 が公開されました。日本語化ファイルは大幅に見直したので、以前より隨分よくなったと思っています。お気づきの点がありましたら、メール mako(あっと)pasero.net または XMPP でも同じ形の mako(あっと)pasero.net までお知らせください。
前の記事のようにして、WordPress の記事に xmpp:
のリンクを書けるようになりました。しかし、それを読む側のブラウザが「そんなの知らん」と言っては役に立ちません。
手元の環境は Linux (Debian) 上の Firefox (Debian では Iceweasel という名前) ですので、それについて書きます。その他の環境については、wiki.xmpp.org に情報があります (ただし Firefox の例を見てもやや古い情報のようです)。
ブラウザ
Firefox について、mozillaZine の Register protocol を参考にしました。
- ロケーションバーに
about:config
と入力します。
- 右クリック→新規作成→真偽値 とします。
- 「設定名」を
network.protocol-handler.expose.xmpp
とし、値を false
とします。
- 次にこの
xmpp:
のリンクをクリックしたときに、どのアプリケーションでこのリンクを開くか、聞いてきます。これはあとで 編集→設定→プログラム のところで変更できます。
Chromium (Chrome) については、常用していないので詳しくありません。ヘルプを見ると、設定→高度な設定→コンテンツの設定 の「ハンドラ」あたりでどうにかするのでしょうか。
XMPPクライアント
ところで、この方法ではアプリケーションに URL が渡されるのですが、それを受け取って開きながら起動できる XMPP アプリケーションを2つ紹介します。
ひとつは Gajim です。ただし gajim-remote handle_uri %s
という形で呼び出すのですが、Firefox から URL 以外の引数を渡せないようなので、ラッパーを介することにしました。
もうひとつは、ウェブアプリの Jappix です。Jappix の オプション→一般→XMPPリンク の「JappixでXMPPリンクを開く」をクリックすると、Firefox の、どのアプリケーションでこのリンクを開くかという選択肢に Jappix が入ります。
WordPress の記事の中などでリンクを記述する場合、特定のスキームしか書くことができません。たとえば http://
や mailto:
は書くことができますが、git://
や skype:
などと書こうとしても、自動的に削除され、http://
とみなされてしまいます (管理者権限で記事を書いている場合は適用されず、自由に書くことができます。権限が編集者以下の場合です)。
調べてみると、WordPress 3.3 からこの制限は wp-includes/functions.php
の wp_allowed_protocols()
に書かれています。そこを見てみると、スキーム名を追加するには kses_allowed_protocols
というフックを使えばよさそうです。
いま xmpp:
というスキームのリンクを記述したいので、テーマの functions.php
あたりに
function ext_protocols ($protocols) {
$protocols[] = 'xmpp';
return $protocols;
}
add_filter('kses_allowed_protocols', 'ext_protocols');
と書きました。これで記事中にxmpp:mako@pasero.net や xmpp:なんでも談話室@muc.step.im?join などのリンクを記述できるようになりました。
半年ほど前から、Jabber/XMPP サーバー STEP.imを公開しています。
Jabber/XMPP については、しばらく前に記事にしました。Jabber/XMPP をはじめるには、アカウント (JID) が必要です (ちょうどメールを使う際にメールアドレスが必要なように)。もし GMail のアカウントや WordPress.com のアカウントをお持ちであれば、それらを JID として使うことができます。これらのアカウントを持っていない、または使いたくない場合はこの STEP.im でアカウントを作ることができます。
また、グループチャット(Multi-user chat, MUC) の談話室をこの STEP.im に開設することができます (STEP.im のアカウントを持っていなくても開設・参加できます)。IRC によく似ていますが、後発なだけに、IRC の欠点を補って使い勝手のいいものです。
数年前から、自分のごく近傍で Jabber/XMPP を利用してきました。なかなか優れていると思うのですが、あまり話題になることがありません (Google トークや Facebook チャットなど、ユーザーに意識させないところで浸透しているようですが)。クライアント Gajimの日本語訳、サーバー ejabberd の日本語訳のお手伝いなども行ってきました。そしてとうとう公開サーバーを運用することにしたのです。
どうぞよろしくお願いいたします。
もたもたしている間に年が変わってしまいました。先日の記事に、これまで Jabber/XMPP と WordPress の連関について触れているところは少ない、というようなことを書いたのですが、前の記事を書く際に「WordPress勉強会「Automatticのワークスタイル」に参加しました」を見落としていました。
2009年8月とさらに1年遡って、その時点では Automattic 社内の事例として、P2 と im.wordpress.com のことに触れられています。その頃にはまったく気づいていませんでしたが。
P2 テーマと Jabber/XMPP
たとえば WordPress の翻訳に関わる人たちの情報交換の場が、昨年(2010年)9月末にメーリングリストから、この P2 を使った WP Polyglots に移行しました。私はもっぱら眺めているだけなのですが、私にとって P2 は非常に読みにくくて、移行後はもう読むこと自体をやめてしまっていました。
前の記事で触れた「ブログ投稿やコメントの即時配信」の記事を読んで、ようやく Jabber 通知を使えることを知り、さっそく継読するようにしました。コメントが投稿されるたびに通知されるので、以後はさっと流し読みだけでもできるようになりました。個人的には、Jabber/XMPP と組み合わせてはじめて P2 の力を見ることができました。
1年前や2年前の記事を見て何を今さら、と言われそうですが、私の検索能力が低いのか、やはり P2 を取り上げながら Jabber/XMPP に触れているのは、特に日本語では、上記の2009年の Automattic 社内の話以外には見つけることができません(このスライドも同じ時期のようです)。どうも Jabber/XMPP はあまり関心を持たれていないようです。