0

Rails アプリ内で、誰かが Facebook にサインアップすると、その人の電子メール、名前、画像、場所、略歴、Web サイトを取得しようとします。

私はOmniauth Facebookを使用しています。私が従ったガイドは次のとおりです。

サインアップはスムーズに機能し、ブラウザーやログにエラーは表示されませんが、場所、経歴、および Web サイトはすべて nill として返されます。何が原因でしょうか? どうすればこれを修正できますか?

user_location、user_about_me、user_website を呼び出すことはできますか?

https://developers.facebook.com/docs/facebook-login/permissions/v2.2?locale=en_GB#reference

宝石ファイル:

gem 'devise'
gem 'omniauth-facebook'

ユーザー.rb

  def self.from_omniauth(auth)
  where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
    user.email = auth.info.email
    user.password = Devise.friendly_token[0,20]
    user.name = auth.info.name  
    user.image = auth.info.image 
    user.location = auth.info.user_location 
    user.about = auth.info.user_about_me 
    user.website = auth.info.user_website 
  end
end

Devise.rb 初期化子

  config.omniauth :facebook, "APP_ID", "APP_SECRET",
          scope: 'email, user_location, user_about_me, user_website',
                  strategy_class: OmniAuth::Strategies::Facebook

どんな助けでも大歓迎です!

4

1 に答える 1

1

Facebook API のドキュメントはかなりわかりにくいです。

問題は Rails コードや omniauth gem にはありません。

デフォルトでは、Facebook は、ユーザーの名前、電子メール、画像、およびその他のいくつかの属性を取得するアプリケーションのみを承認します。

ユーザーの場所、略歴、または Web サイトを取得できるようにするには、これらのそれぞれについて個別に許可を申請する必要があります。

于 2014-12-16T02:09:07.697 に答える