使用したライブラリはこちらです。
https://github.com/kazasiki/omniauth-line
組み込んだアプリでomniauth-google-oauth2を使用していて、omniauth-google-oauth2がomniauth-oauth2のバージョン1.6以上を要求していたので問題が起こりました。
詳しいエラーの内容と、根本的な問題はスタックオーバーフローに投稿し、的確な回答をいただいたのでそちらをご覧ください。
トークンをリクエストする時の必須パラメータredirect_uri
に必要の無いパラメータが付与されてたのでredirect_uri does not match
になっていたわけですが、そもそもリクエスト組み立ててるの俺じゃねえし、どうすれば良いの?というところを解説したいと思います。
この辺でomniauth-oauth2はcallback_url
をオーバーライドしなくなり、omniauthのこの実装が使われるようになりました。
googleやfacebookはなんでうまくいくのかな?と思ってみてみたら各自オーバーライドしていました。
https://github.com/zquestz/omniauth-google-oauth2/blob/e2ace464ac2025bb287e78f7ac0a1249c73658b1/lib/omniauth/strategies/google_oauth2.rb#L102-L104
https://github.com/mkdynamic/omniauth-facebook/blob/5fdcad76fbef1fb6acc2cbc395c6d6d36563c7b1/lib/omniauth/strategies/facebook.rb#L81-L84
よく見るとPR出てましたね・・・
https://github.com/kazasiki/omniauth-line/pull/10
ただGoogleは1.6を要求するので1.6にアップしたPRを出しておきました。
https://github.com/kazasiki/omniauth-line/pull/16
一応出しましたが丸二年メンテナンスされてないっぽいのでマージはなさそう。
私のフォークしたmasterには反映してあるので良かったら使ってください。
https://github.com/gomo/omniauth-line
スタックオーバーフローでは的確な回答を直ぐいただいて助かりました。この場を借りてお礼をさせていただきます。スタックオーバーフローはコメント書こうとすると「ありがとうなどのお礼は書かないでください」と言われるんですよね。なんか日本人の文化に会わないというか、お礼したいと思いました。まあ▲ボタンを押して評価するのがお礼なんだと思いますが。