Facebook 护照策略不返回电子邮件字段
Facebook-passport strategy not returning emails field
我正在使用 Facebook v2.5 API。
路线:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));
配置:
passport.use(new FacebookStrategy({
clientID: CLIENTID,
clientSecret: CLIENTSECRET,
callbackURL: callbackURL,
profileFields: ["emails", "displayName", "gender"]
},
function (token, refreshToken, profile, done) {
console.log(profile)
...
}));
配置文件没有 "emails" 字段。
我也试过将范围作为数组传递
scope : ['email']
我只是遇到了同样的问题:使用我的测试帐户并使用范围,我突然 "lost" 电子邮件地址,无法使用此处找到的所有提示再次获取它。
奇怪的是用了一个新的facebook账号,竟然出现了邮箱地址。
=> 我在 Facebook 上访问了我的测试帐户,并在那里撤销了我的应用程序的所有权利。之后我再次登录我的应用程序并授予所需的所有权限。从那以后我又收到了电子邮件地址。
希望对您有所帮助。
确保你在登录时定义了"email"范围,然后你可以在询问时得到它graph.facebook.com:
$url = 'https://www.facebook.com/dialog/oauth';
$params = array(
'client_id' => $this->strategy['app_id'],
'redirect_uri' => $this->strategy['redirect_uri'],
'scope' => 'email',
);
我正在使用 Facebook v2.5 API。
路线:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));
配置:
passport.use(new FacebookStrategy({
clientID: CLIENTID,
clientSecret: CLIENTSECRET,
callbackURL: callbackURL,
profileFields: ["emails", "displayName", "gender"]
},
function (token, refreshToken, profile, done) {
console.log(profile)
...
}));
配置文件没有 "emails" 字段。
我也试过将范围作为数组传递
scope : ['email']
我只是遇到了同样的问题:使用我的测试帐户并使用范围,我突然 "lost" 电子邮件地址,无法使用此处找到的所有提示再次获取它。
奇怪的是用了一个新的facebook账号,竟然出现了邮箱地址。
=> 我在 Facebook 上访问了我的测试帐户,并在那里撤销了我的应用程序的所有权利。之后我再次登录我的应用程序并授予所需的所有权限。从那以后我又收到了电子邮件地址。
希望对您有所帮助。
确保你在登录时定义了"email"范围,然后你可以在询问时得到它graph.facebook.com:
$url = 'https://www.facebook.com/dialog/oauth';
$params = array(
'client_id' => $this->strategy['app_id'],
'redirect_uri' => $this->strategy['redirect_uri'],
'scope' => 'email',
);