0

Heroku で Spree 3.1。gem 'spree_social' をインストールしたら、:git=> ' https://github.com/spree-contrib/spree_social '、ブランチ: '3-1-stable' を作成し、gem doc.and developer.facebook に記載されているようにセットアップします。 com facebook butoon を使用してログインできませんでした

開発も生産も求め続けた

One more step to complete your registration from Facebook

何が間違っている可能性がありますか?:すでに Spree で FB APP ID と FB APP シークレットをセットアップしています : http ://sub.domain.com でアプリ ドメインをセットアップします :クライアント OAuth ログインと Web OAuth ログインではい :Web OAuth 再認証と組み込みブラウザ OAuth ログインを強制しません

FB設定 FBログイン設定

FBログインをクリックしてからユーザー/パスワードを入力すると、毎回尋ねられます(初回のみのはずなので.?

Facebook からの登録を完了するためのもう 1 つのステップ

$heroku ログ -t

2016-11-30T18:39:08.242440+00:00 app[web.1]: Started GET "/users/auth/facebook" for 24.253.3.125 at 2016-11-30 18:39:08 +0000
2016-11-30T18:39:08.245300+00:00 app[web.1]: I, [2016-11-30T18:39:08.245245 #4]  INFO -- omniauth: (facebook) Calling through to underlying application for setup.
2016-11-30T18:39:08.246504+00:00 app[web.1]: I, [2016-11-30T18:39:08.246446 #4]  INFO -- omniauth: (facebook) Request phase initiated.
2016-11-30T18:39:08.690859+00:00 app[web.1]: Started GET "/users/auth/facebook/callback?code=AQCvn-9bgYXYsw8J4rMHzaXkQFzulZKWrxVzokGsi6l2adj2zsDTB5YUTPoCEwzjLcEdGGohpfuIJ7r_QtiABIdoIBLKTDCtfms2v6jW7yjE7VfthoHgpvRtsJXz8xJL2pIp6BmvHHxq9Ahfnjir3GzWTjbMLJ_300LgpAMoy0PHsjAZh6nzIpyaiQ_PD4HWSqaHfMQds2r-Yd88gS8qJRvvO2qwkBQEXj-4Uaer4uhOnnRKs05SxRrQZAc0mE-gHBiHT-8NXWzmQMEvepBTNJllAfJdamhW78NisYcLHRZRwU0FDyyUVQU5YcIk4vAI_yQ9JKvlpvlNx2fdnw8E5wn45tSs_mZiSgoLhU8Cxg2jBg&state=eb30a2462d75546d28439534dcc560761a5eafefa5b47a75" for 24.253.3.125 at 2016-11-30 18:39:08 +0000
2016-11-30T18:39:08.692550+00:00 app[web.1]: I, [2016-11-30T18:39:08.692484 #4]  INFO -- omniauth: (facebook) Calling through to underlying application for setup.
2016-11-30T18:39:08.693727+00:00 app[web.1]: I, [2016-11-30T18:39:08.693638 #4]  INFO -- omniauth: (facebook) Callback phase initiated.
2016-11-30T18:39:08.927577+00:00 app[web.1]: Processing by Spree::OmniauthCallbacksController#facebook as HTML
2016-11-30T18:39:08.927612+00:00 app[web.1]:   Parameters: {"code"=>"AQCvn-9bgYXYsw8J4rMHzaXkQFzulZKWrxVzokGsi6l2adj2zsDTB5YUTPoCEwzjLcEdGGohpfuIJ7r_QtiABIdoIBLKTDCtfms2v6jW7yjE7VfthoHgpvRtsJXz8xJL2pIp6BmvHHxq9Ahfnjir3GzWTjbMLJ_300LgpAMoy0PHsjAZh6nzIpyaiQ_PD4HWSqaHfMQds2r-Yd88gS8qJRvvO2qwkBQEXj-4Uaer4uhOnnRKs05SxRrQZAc0mE-gHBiHT-8NXWzmQMEvepBTNJllAfJdamhW78NisYcLHRZRwU0FDyyUVQU5YcIk4vAI_yQ9JKvlpvlNx2fdnw8E5wn45tSs_mZiSgoLhU8Cxg2jBg", "state"=>"eb30a2462d75546d28439534dcc560761a5eafefa5b47a75"}
2016-11-30T18:39:08.929944+00:00 app[web.1]:   Spree::UserAuthentication Load (1.2ms)  SELECT  "spree_user_authentications".* FROM "spree_user_authentications" WHERE "spree_user_authentications"."provider" = $1 AND "spree_user_authentications"."uid" = $2 LIMIT 1  [["provider", "facebook"], ["uid", "163770347430817"]]
2016-11-30T18:39:08.932153+00:00 app[web.1]:   Spree::User Load (1.2ms)  SELECT  "spree_users".* FROM "spree_users" WHERE "spree_users"."deleted_at" IS NULL AND "spree_users"."email" IS NULL LIMIT 1
2016-11-30T18:39:08.935508+00:00 app[web.1]:    (1.0ms)  BEGIN
2016-11-30T18:39:08.937492+00:00 app[web.1]:    (0.9ms)  ROLLBACK
2016-11-30T18:39:08.938440+00:00 app[web.1]: Redirected to http://MYSUB.DOMAIN.com/user/spree_user/sign_up
2016-11-30T18:39:08.938569+00:00 app[web.1]: Completed 302 Found in 11ms (ActiveRecord: 4.2ms)
4

1 に答える 1

0

私は同じ問題を抱えていました.「Facebookからの登録を完了するためのもう1つのステップ」というメッセージが表示されていました. Spree::User モデルにいくつかのフィールドを追加し、それらが存在することを検証していたためであることがわかりました (:first_name、:last_name、presence: true を検証します)。デフォルトの spree-social コードは、電子メール アドレスを入力するだけで、ユーザーを保存しようとします。(first_name と last_name を入力しなかったため) 失敗し、そのメッセージが表示されます。検証行をコメントアウトしましたが、すべて機能します。ここで、first_name と last_name を Facebook から取得して入力できるようにする方法を見つけ、検証行のコメントを解除する必要があります。

これが誰かに役立つことを願っています。

于 2017-03-16T16:06:35.490 に答える