はじめに
Let's Chat を立てて色々遊んでいるのだけれど、会社のメールアドレスだと gravatar のメールアドレス確認メールが SPAM 扱いされててそのままだと届かない。「チャットのアイコンに」とも言いづらくて解除申請もしにくい。それと、いつ Web プロキシで遮断されるかも分からない。
⇒Surrogator https://github.com/cweiske/surrogator を立てて内部でアイコンを提供すれば良い。
問題
Let's Chat の gravatar イメージはデフォルト画像を指定していないので、未登録の人が並ぶと以下のようになる(画像はテスト環境。hubot だけは登録したメールアドレスを使っている)。
解決法1: デフォルト画像の指定
gravatar のリンクを埋め込んでいるところを探して、&d=identicon
などと、デフォルト画像の指定を埋め込んで回る
問題点
- Web プロキシで遮断される恐れが残る
- 自由に設定できない
ということでこの案はイマイチ
解決法2: Surrogator を使う
Surrogator を使うと
- HTTP サーバに PHP が入ってれば OK(Bitnami を使うので今回は OK)
- gravatar 互換の API なので、Let's Chat の gravatar の URL を書き換えまくればそのまま動く
- ローカルに<メールアドレス>.png または.jpg をおいてコマンドを実行すれば準備が整う(外部とメールのやり取りが不要)
- Github Enterprise のガイドにも Surrogator使えるよ、みたいなことが書いてあるくらいにはメジャー(?)
便利。
Surrogator の導入
- surrogator-0.2.0 を落としてどっか適当なフォルダに置く
- data/surrogator.config.php.dist を surrogator.config.php にリネームする
- surrogator.config.php の下の方にある
$sizes = array(16, 32, 48, 64, 80, 96, 128, 256, 512);
に、20, 30, 50, 100 を追加する(Let's Chat で使う大きさ) - www/ 以下にある .htaccess と avatar.php を htdocs ルートに置く
- avatar.php のsurrogator.config.php を参照しているパスを書き換える
- Apache の設定で PHP と mod_rewrite が有効なことを確認する(必要ならば設定変更して Apache の再起動をする)
- raw/default.png と raw/<メールアドレス>.png を用意する
- コマンドラインから、
php surrogator.php
を実行して縮小画像の準備をする
気が向いたら raw フォルダの指定を書き換えて共有フォルダにして好き勝手に置いてもらったり、Jenkins さんか Hubot さんにお願いするとphp surrogator.php
してもらうようにしたりとか。