Twitter Developers でTerms of service と Privacy Policy に記入し、Request email address from users is
をEnableにしてもauth.info
の中にemail
が返ってこなかった。
原因はomniauth-twitter
のバージョンが古かったから。Twitter API の仕様変更で、include_email
のクエリを付与しないとメールアドレスを返してくれなくなったらしく、これはomniauth-twitter
の1.2.0
では対応していない。
https://stackoverflow.com/questions/33292997/getting-email-back-from-twitter-oauth-with-devise-and-rails
1.4.0
にバージョンを上げることで解決した。
gemfile.ruby
gem 'devise'
gem 'omniauth'
gem "omniauth-rails_csrf_protection"
gem 'omniauth-twitter', '1.4.0'
gem 'dotenv-rails'
gem 'devise-i18n'
gem 'devise-i18n-views'
$ gem list
omniauth (1.9.1)
omniauth-oauth (1.2.0)
omniauth-rails_csrf_protection (0.1.2)
omniauth-twitter (1.4.0, 1.1.0)
なぜか最新のomniauthではエラーがでて1.9.1になっている‥。
そもそものRails6へのdeviseとomniauth-twitter導入は以下の記事
https://qiita.com/cigalecigales/items/16ce0a9a7e79b9c3974e