私はthis codeを使用しました。 ID、シークレット、コールバックURL、ローカルデータベースのすべてを記入しました。私のウェブサイトでFacebookのログインからメールの範囲を取得することができません
私は「http://localhost:3000/」に自分のFacebookアプリのURLを設定して、私は「http://localhost:3000/」と「http://localhost:3000/auth/facebook/callback」
の両方を試したWebサイトのURLのためにも私は8080から3000にアプリのポートを変更それにマッチする。
ログインをクリックするたびに、サーバーがクラッシュし、mongooseのノードモジュールのどこかにキャッチされていないエラーがあり、「未定義のプロパティ0を読み取れませんでした」と伝えられました。 (newUser.facebook.email = profile.emails [0] .value;)ので、電子メールスコープにアクセスする権限がありませんでしたので、その行をコメントアウトしようとしました。
この行をコメントアウトすると、ログイン時にサーバーがクラッシュすることはなく、プロファイルページにリダイレクトされたときにトークン、ID、およびdisplayNameが取得されました。
私は電子メールを要求しないが、そのコード行を追加して電子メールを要求するとログインが失敗する。
私はこのような "電子メール" 範囲要求だ:
app.get( "/ AUTH /フェイスブック"、passport.authenticate( "フェイスブック" を、{範囲:[ "電子メール"]} ));
私は前の質問を検索しましたが、私が探していたものが見つかりませんでした。私に何ができる?
私はそれを試してみます、ありがとう。 ID:ID ユーザ名:未定義 のdisplayName:名前 名:FamilyNameで、middleNameとgivenName属性を持つオブジェクト、すべての未定義 – Metsuryu
OK、私は、これは "プロファイル" にあるものであること、そして試してみました。 性別:未定義 profileUrl:未定義 プロバイダ:facebook _rawおよび_json:displayNameおよびidを持つオブジェクト。 だから私は全くメールを受け取っていません。私は電子メールの範囲を正しく要求していないからだと思いますか?どうすれば修正できますか? – Metsuryu
私はここで暗闇の中で撮影しています。あなたがアクセスしようとしているFacebookのユーザーはあなたのアプリにアクセス許可を与えておく必要があります。 – devxeq