omniauth-twitterのレスポンス例を確認したところ、あれれ〜emailなんてどこにも書いてないよぅ。
email情報がどうしても取得したかったので調べるとTwitter Developer Documentationにこんな記述がありました。
The “Request email addresses from users” checkbox is available under the app permissions on apps.twitter.com. Privacy Policy URL and Terms of Service URL fields must be completed in the app settings in order for email address access to function. If enabled, users will be informed via the oauth/authorize dialog that your app can access their email address.
以下、私的スーパー簡易翻訳
ユーザーのemail情報が欲しくば、
Privacy Policy URL
とTerms of Service URL
を設定せよ。そうすれば道は開かれるであろう。
設定してみた。
そして上記記述の通りPermissions
を確認するとこんな欄が。
チェックをつけてUpdate Settings
するとSuccessfully!OK、そういうことだったか。
これでレスポンスにemailが含まれるようになった。問題は解決した。
レスポンス例
{
:provider => "twitter",
:uid => "123456",
:info => {
:email => "oauth@example.com"
// 以下略
だがここでふと思い立ち、Privacy Policy URL
とTerms of Service URL
を消した状態でPermissions
を確認してみた。(下図がその様子)そう、Request email addresses from users
は初めからずぅぅぅぅぅっと表示されていた。そう見落としていたのだ。
この状態でチェックをつけてUpdate Settings
するとなんだか見覚えのあるエラーメッセージが表示された。
そう見落としていたのだ。見落としていたのだ。
1時間モッタイナイ!