1, Facebook Developerにアプリを登録!
必要になるものは、アプリIDとapp secretです。
ローカル環境でもFacebookログインの挙動を確認するためにクライアントOAuth設定で自身のローカル環境のURIも追加しておく。
2, Sorceryを入れる!
バージョンは0.11.0以降のものを指定します!(エラーが出るため。[Sorcery] (https://github.com/Sorcery/sorcery/issues/74))
https://github.com/Sorcery/sorcery/wiki/External
公式に従う。
注意点
sorcery.rb
config.facebook.key = ENV["FACEBOOK_KEY"]
config.facebook.secret = ENV["FACEBOOK_SECRET"]
case Rails.env
when "production"
config.facebook.callback_url = ENV["FACEBOOK_CALLBACK"]
when "development"
config.facebook.callback_url = ENV["FACEBOOK_CALLBACK_DEVELOPMENT"]
end
config.facebook.user_info_mapping = { email: "email", first_name: "first_name", family_name: "last_name" }
config.facebook.user_info_path = "me?fields=email,first_name,last_name"
config.facebook.access_permissions = ["email", "public_profile"]
config.facebook.display = "page"
config.facebook.api_version = "v2.10"
- envファイルで開発環境と本番環境両方のcallback_urlを登録することもできる。
- access_permissionsでFacebook側のどんな情報を必要とするかを登録する。
- user_info_pathにUserをcreateする際に保存したいFacebookから取ってくる情報を挙げる。
最近のバージョンのAPIでは fields パラメータを用いて取得する情報を明示的に指定する必要があるため、ユーザー情報取得部分を変更することで、メールアドレスの取得ができます。
- アクセス許可のリファレンス https://developers.facebook.com/docs/facebook-login/permissions/#reference-public_profile
3, ローカル環境で各keyのpathを通す!
export="あなたのアプリID"
export="あなたのapp secret"
source ~/.bash_profile
pathが通っているかどうかexport -pで確認できます