相关疑难解决方法(0)

Facebook API"此应用程序处于开发模式"

"开发模式"对于facebook应用程序意味着什么?我找不到在开发模式下我能做什么和不能做什么的确切解释,以及与"所有用户都不可用,因为你的应用程序不在线"有什么关系.

有些人也把它称为"沙箱模式",所以我在"开发模式","沙盒模式","实时与普通大众不可用"之间存在很多混淆

facebook facebook-graph-api

117
推荐指数
5
解决办法
14万
查看次数

Passport-Facebook即使在范围内也不提供电子邮件

在我的应用程序中,我按如下方式注册facebook-strategie:但返回的配置文件不包含电子邮件字段....

passport.use(new FacebookStrategy({
        clientID: config.facebook.clientID,
        clientSecret: config.facebook.clientSecret,
        callbackURL: config.facebook.callbackURL,
        passReqToCallback: true
    },
    function(req, accessToken, refreshToken, profile, done) {
        // No email in the following colsole.log
        console.log(JSON.stringify(profile));
    }));
Run Code Online (Sandbox Code Playgroud)

获得如下:

app.get('/oauth/facebook', passport.authenticate('facebook', {
    failureRedirect: '/login',
    scope:['email']
}));
Run Code Online (Sandbox Code Playgroud)

(所以我在这里说的使用范围:Passport-facebook没有收到电子邮件)

在FB-Login页面上iam甚至要求提供电子邮件,我确实提供了: 在此输入图像描述

任何帮助都很贴切!

facebook oauth node.js facebook-oauth passport.js

19
推荐指数
1
解决办法
8664
查看次数

passport-facebook - 无法获取about_me和电子邮件配置文件字段

我正在尝试使用passport-facebook为我的应用程序建立登录系统.一切顺利,除了从请求中返回未定义的2个字段.

我将发布我的整个代码用于登录程序,因为我在这里没有看到很多关于它的信息,即使在这个问题上有很多问题.

这是app.js中的配置

var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;

passport.serializeUser(function(user, done) {
  done(null, user.facebookId);
});
passport.deserializeUser(function(id, done) {
  routes.findUserById(id, function(err, user) {
    done(err, user);
  });
});

passport.use(new FacebookStrategy({
    clientID: FACEBOOK_APP_ID,
    clientSecret: FACEBOOK_APP_SECRET,
    callbackURL: FACEBOOK_CALLBACK_URL,
    profileFields: ['id', 'displayName', 'link', 'about_me', 'photos', 'email']
  },
  routes.handleLogin
));
Run Code Online (Sandbox Code Playgroud)

使用护照初始化和会话

app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)

实际请求处理,请注意我使用的是正确的范围

app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['user_about_me', 'email'] }));
app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/error' }));
Run Code Online (Sandbox Code Playgroud)

这是我在路由器中的用户创建功能

exports.handleLogin = function(accessToken, refreshToken, profile, done) {
  db.userCatalog.findOne({ facebookId: profile.id }, function(err, existingUser) { …
Run Code Online (Sandbox Code Playgroud)

facebook mongoose node.js passport.js

18
推荐指数
2
解决办法
1万
查看次数

Passport-facebook没有收到电子邮件

我已经使用快递js和passport-Facebook在我的网站上实现了Facebook-LogIn.它运作良好(我获得现场简介),但问题是我没有收到电子邮件.我收到一个错误:

email   : profile.emails[0].value,
Run Code Online (Sandbox Code Playgroud)

TypeError:无法读取未定义的属性"0"

我的代码:

passport.use('facebook',new FacebookStrategy({
        clientID            : config.facebook.id,
        clientSecret    : config.facebook.secret,
        callbackURL  : '/auth/facebook/callback',
        profileFields : ['id', 'displayName', 'emails','photos']
    }, function(accessToken, refreshToken, profile, done) {

        User.findOne({provider_id: profile.id}, function(err, user) {
            if(err) throw(err);
            if(!err && user!= null) return done(null, user);

            var user = new User({
                provider_id : profile.id,
                name                 : profile.displayName,
                email               : profile.emails[0].value,
                photo               : profile.photos[0].value,
            });
            user.save(function(err) {
                if(err) throw err;
                return done(null, user);
            });
        });
    }));
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮我解决我的问题,那将会很棒:)

node.js facebook-graph-api express passport-facebook

13
推荐指数
1
解决办法
5599
查看次数