Signet gem + HttpLog gemがよかった
Signet gem
以前紹介した
を利用して OAuth2 client の挙動を確認していたが、OAuth2 gem という誰よりも大事な名前を使っている gem で試してみたところ、そもそも OAuth2 gem の挙動があやしいことに気がついた。どう考えてもメジャーなのにドキュメントと挙動が合ってないように見える。少なくとも上のデモアプリでは期待通りに token を取得することができない。そこで代わりに使ってみたのが ruby-toolbox ですぐ近くに見えるこれ。
googleapis/signet: Signet is an OAuth 1.0 / OAuth 2.0 implementation.
当然だけど Google が自前の SDK を書く際に OAuth の部分はこれにお任せにしているので、利用実績も十分に多いと言ってよさそう。
やってみたらサクッと動いた。なんだったんだ OAuth2 gem …
HttpLog gem
OAuth2 gem も Signet gem も内部で HTTP の部分は Faraday に依存していて、挙動をどうしても細かく確認したくなったのでしばらく log の設定をゴニョゴニョやっていたんだけど、外から設定を入れる方法がどうにもよく分からない。積極的に自分で Faraday を使ったことがないので。そこで別なアプローチを採ることにした。そのために活用できたのがこれ。
trusche/httplog: Log outgoing HTTP requests in ruby
完璧に意図通りではないが、概ね期待通りに動く。いろんな HTTP ライブラリの挙動を外部から logging できる。これはなかなか便利。