HipchatにおけるSend room notification(いわゆるHipchat通知)を作っていて、こんな不思議な事に遭遇したことはないだろうか。
- 未読マークが出ない
- 通知センターやスマートフォンに通知が来ない
- 他の人には通知が来るのに、自分だけ来ない
この辺でハマって原因判明に時間を要したので、僕のような人が出ないようにQiitaに書いておこうと思う。
正しく通知されないときの確認項目
1.HipchatのAPI経由メッセージは、デフォルト「非通知」
ちゃんとHipchat Send room notification APIv2を読めば書いてあるが、通知(=notify)は、明示的に設定しないと無効(false)である。
notify:
Whether this message should trigger a user notification (change the tab color, play a sound, notify mobile phones, etc). Each recipient's notification preferences are taken into account.
Defaults to false.
Hipchatに通知するプログラムを書く時は、 必ずnotify
パラメータを「true」 にしてメッセージを送信する必要がある。
2.APIv1はもう古い
APIv1(管理者がアクセスキーを発行するやつ)を使っているような古いサービスでは、上記フラグが設定されていないことが考えられる。
そんな時はもうどうしようもない。
そういうサービスは意外と多いので注意。
誰かが昔作ったようなライブラリとか、送信例とかも、APIv1を想定していることがあるので注意。
3.自分のアクセスキーで作成したメッセージは、自分に通知されない
APIのv1とv2の大きな違いは、アクセスキーの発行者だ。v1はグループの管理者(≒システム管理者)、v2は個人のアカウントとなる。APIv2を使うなら、自分のアカウントで通知を出せるわけだ。これは個人用のツールを作るときや、開発時のテストのときに便利である。
そこに罠がある。
自分のアクセスキーで送信したメッセージは、自分が送信したメッセージとなる。
自分が送ったメッセージは自分には通知されない。 (2017/01/26現在)
APIを使って送ってるんだから、通知するほうが自然だと思うのだが・・・・
さいごに
この記事は2017/01/26に書いたものであり、また仕様が変わってしまうかもしれない。
常に最新のドキュメントを読むのが当然だが、 ドキュメントの更新が追いついていない ことも多々あるので注意。