ねえ、Facebook、OmniAuth、Rails、Herokuを一緒にプレイさせることができないようです。すべてがローカルで正常に機能します。
問題
何が起こるのですか?ログインをクリックしても何も起こりません。Firebugでは、ローカルではFacebook Oauthリクエストが発生したことを示していますが、実際のサイトではそのようなリクエストは発生しません。代わりに、コンソールでメッセージが表示されますFB.login() called before FB.init()
。
FacebookでURLを変更してローカルにログインしようとすると、Facebookからエラーメッセージが表示されます。これは、リクエストが発生したことを意味します。ですから、この問題は証明書と関係があると思います。
これはそれを解決しませんでした:Facebookのomniauthは本番環境で機能していませんが、権限のために何を入れるべきかわかりません。私は拡張fbグラフのアクセス許可を使用せず、何も指定せずにローカルで機能しました(以下の初期化子を参照)。
私のセットアップ
Facebookの[アプリをFacebookと統合する方法を選択してください]で選択し、[Website with Facebook login
サイトのURL]で機能しているか機能していhttp://0.0.0.0:3000
ないかを確認しますhttp://mysite.tld
。
これが私のomniath.rb初期化子です
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET'], {
client_options: { ssl: {
ca_file: '/usr/lib/ssl/certs/ca-certificates.crt',
ca_path: "/etc/ssl/certs"
}}
}
end
また、私はマスキング付きのカスタムドメイン名を使用しています。それが問題になる場合に備えて、fyiだけです。念のため、何も表示せずにエラー画面が表示されるので、そうは思いません。
ありがとう、そして私はあなたが提案できるどんなヒントやトラブルシューティングも本当に楽しみにしています!悪夢だったので、これが機能するようになったら、これらすべての設定に関するチュートリアルをブログに書く予定です。