4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Sorceryを使ったFacebookログイン

Last updated at Posted at 2018-04-16

1, Facebook Developerにアプリを登録!

必要になるものは、アプリIDとapp secretです。
ローカル環境でもFacebookログインの挙動を確認するためにクライアントOAuth設定で自身のローカル環境のURIも追加しておく。
 Screen Shot 2017-09-23 at 4.54.58.png
 
Screen Shot 2017-09-23 at 4.55.18.png

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 パラメータを用いて取得する情報を明示的に指定する必要があるため、ユーザー情報取得部分を変更することで、メールアドレスの取得ができます。

3, ローカル環境で各keyのpathを通す!

export="あなたのアプリID"
export="あなたのapp secret"
source ~/.bash_profile

pathが通っているかどうかexport -pで確認できます

参考 http://d.hatena.ne.jp/jiikko/20140521

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?