1, Twitter Developerにアプリを登録!
必要になるのは、Consumer Key(API Key)とConsumer Secret(API Secret)です!
2, Sorceryの設定をする
https://github.com/Sorcery/sorcery/wiki/External
公式に従う。
sorcery.rb
Rails.application.config.sorcery.submodules = [:remember_me, :external]
Rails.application.config.sorcery.configure do |config|
config.external_providers = [:twitter]
config.twitter.key = ENV["TWITTER_KEY"]
config.twitter.secret = ENV["TWITTER_SECRET"]
case Rails.env
when "production"
config.twitter.callback_url = ENV["TWITTER_CALLBACK"]
when "development"
config.twitter.callback_url = ENV["TWITTER_CALLBACK_DEVELOPMENT"]
end
config.twitter.user_info_mapping = { email: "screen_name" }
user.authentications_class = Authentication
end
end
3, ローカル環境で各keyのpathを通す!
export="あなたのAPI Key"
export="あなたのAPI Secret"
export="http://localhost:3000/oauth/callback?provider=twitter"
source ~/.bash_profile
pathが通っているかどうかexport -pで確認できます。
4, 注意点!!!
callbackURLの指定をしない場合、PINcode入力ありのログイン機能になってしまいます。
emailを取得してない、かつ
validates :email, uniqueness: true
をかけているとemail nullで引っかかります。
5, メールアドレスを取得するには?
まずAdditional Permissionsを要求するためにプライバシーポリシー、利用規約ページのURLを設定します。
次に記述です。
sorcery.rb
config.twitter.user_info_path = "/1.1/account/verify_credentials.json?include_email=true"
config.twitter.user_info_mapping = { nickname: "screen_name", email: "email" }
これで終わりです!