0

omniauth-facebook for railsでFacebookのサインアップ/ログインを有効にしようとしています。私はFacebookのユーザーの名、姓、および電子メールを正常に取得しています。プロファイル画像を作成するための画像を取得することは、残念ながら成功していない。設定/ devise.rbでは私が持っている:(一部redactions製)OmniAuth Facebook with Devise

config.omniauth :facebook, "XXappidXX", "XXsecretXX", callback_url: "http://XXXXXXXX/users/auth/facebook/callback", scope: "public_profile, email", permissions: "public_profile, email", image_size: :large, info_fields: 'email, first_name, last_name, picture' 

マイUserクラス:

class User < ActiveRecord::Base 
    def self.from_omniauth(auth) 
     where(provider: auth.provider, uid: auth.uid).first_or_create do |user| 
     user.email = auth.info.email 
     user.first_name = auth.info.first_name 
     user.last_name = auth.info.last_name 
     user.photo = auth.info.image 
     user.password = Devise.friendly_token[0,20] 
     end 
    end 
    ... 

私はローカルホストから取得していますINSERT文:

SQL (0.8ms) INSERT INTO "users" ("provider", "uid", "email", "first_name", "last_name", "photo", "encrypted_password", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["provider", "facebook"], ["uid", "XXXXXXXX"], ["email", "XXXXXX.com"], ["first_name", "Erik"], ["last_name", "VandeWater"], ["photo", nil], ["encrypted_password", "XXXXXXXXXX"], ["created_at", "2016-07-12 15:07:58.509187"], ["updated_at", "2016-07-12 15:07:58.509187"]] 

ハッシュOmniAuthから返されました:

#<OmniAuth::AuthHash credentials=#<OmniAuth::AuthHash expires=true expires_at=1473523053 token="EAAYcrarZAlE8BAKuRypwRSBP2NFrFbzPXPGmJltZAfTmzJVAE68mh54f7r7srsD5uSCJZCzCSZAD7NTtRjC14qLxL95cjbSx0fuiX99999999GtzD0aGAyEE46koakFAnWazXZCYcm9QX74Og6vQQinAqZBLhrj75sK2pGLgZDZD"> extra=#<OmniAuth::AuthHash raw_info=#<OmniAuth::AuthHash email="[email protected]" first_name="Open" id="127279374371632" last_name="User" picture=#<OmniAuth::AuthHash data=#<OmniAuth::AuthHash is_silhouette=false url="https://scontent.xx.fbcdn.net/v/t1.0-1/p50x50/13614986_1999998038_6951825525819638697_n.jpg?oh=1c4e72a136a8c6d12f1bb8106593cf86&oe=582EC4BC">>>> info=#<OmniAuth::AuthHash::InfoHash email="[email protected]" first_name="Open" image="http://graph.facebook.com/127279374371632/picture?type=large" last_name="User"> provider="facebook" uid="127279374371632"> 

Facebookからのプロフィール画像をrieveし、それをユーザーの写真フィールドとして使用しますか?

答えて

0

代わりにオプションでシンボルの使用列:

config.omniauth :facebook..., image_size: 'large', ... 
+0

私はハッシュがOmniAuthから返されました。どうやら、イメージは正常に動作していますが、Userクラスでは正しく割り当てられていません。 –

+0

ブレークポイントで停止した場合、このメソッドの先頭にある 'auth'オブジェクトには何が入っていますか? 'auth.info.image'には何が入っていますか? –

関連する問題