17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Let's Chat の gravatar がみんな同じでつらい→Surrogator 使ってみた

Posted at

はじめに

Let's Chat を立てて色々遊んでいるのだけれど、会社のメールアドレスだと gravatar のメールアドレス確認メールが SPAM 扱いされててそのままだと届かない。「チャットのアイコンに」とも言いづらくて解除申請もしにくい。それと、いつ Web プロキシで遮断されるかも分からない。

Surrogator https://github.com/cweiske/surrogator を立てて内部でアイコンを提供すれば良い。

問題

Let's Chat の gravatar イメージはデフォルト画像を指定していないので、未登録の人が並ぶと以下のようになる(画像はテスト環境。hubot だけは登録したメールアドレスを使っている)。

LetsChat-gravatar.png

解決法1: デフォルト画像の指定

gravatar のリンクを埋め込んでいるところを探して、&d=identiconなどと、デフォルト画像の指定を埋め込んで回る

問題点

  1. Web プロキシで遮断される恐れが残る
  2. 自由に設定できない

ということでこの案はイマイチ

解決法2: Surrogator を使う

Surrogator を使うと

  1. HTTP サーバに PHP が入ってれば OK(Bitnami を使うので今回は OK)
  2. gravatar 互換の API なので、Let's Chat の gravatar の URL を書き換えまくればそのまま動く
  3. ローカルに<メールアドレス>.png または.jpg をおいてコマンドを実行すれば準備が整う(外部とメールのやり取りが不要)
  4. Github Enterprise のガイドにも Surrogator使えるよ、みたいなことが書いてあるくらいにはメジャー(?)

便利。

Surrogator の導入

  1. surrogator-0.2.0 を落としてどっか適当なフォルダに置く
  2. data/surrogator.config.php.dist を surrogator.config.php にリネームする
  3. surrogator.config.php の下の方にある$sizes = array(16, 32, 48, 64, 80, 96, 128, 256, 512);に、20, 30, 50, 100 を追加する(Let's Chat で使う大きさ)
  4. www/ 以下にある .htaccess と avatar.php を htdocs ルートに置く
  5. avatar.php のsurrogator.config.php を参照しているパスを書き換える
  6. Apache の設定で PHP と mod_rewrite が有効なことを確認する(必要ならば設定変更して Apache の再起動をする)
  7. raw/default.png と raw/<メールアドレス>.png を用意する
  8. コマンドラインから、php surrogator.phpを実行して縮小画像の準備をする

気が向いたら raw フォルダの指定を書き換えて共有フォルダにして好き勝手に置いてもらったり、Jenkins さんか Hubot さんにお願いするとphp surrogator.php してもらうようにしたりとか。

17
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?