【发布时间】:2015-04-21 10:12:59
【问题描述】:
我正在使用 passport.js 进行 Facebook 身份验证,最近我开始收到此错误。完整的错误信息如下所示:
FacebookGraphAPIError: (#100) Tried accessing nonexisting field (user_photos) on node type
(User) at D:\app\node_modules\passport-facebook\lib\strategy.js:167:21 at passBackControl
(D:\app\node_modules\passport-facebook\node_modules\passport-oauth2\node_modules\oauth\lib\oauth2.js:124:9)
at IncomingMessage.<anonymous> (D:\app\node_modules\passport-facebook\node_modules\passport-oauth2\node_modules\oauth\lib\oauth2.js:143:7)
at IncomingMessage.emit (events.js:129:20) at _stream_readable.js:908:16 at
process._tickCallback (node.js:355:11)
我尝试了不同的方法来设置权限范围。最初我在
中声明它passport.use(new FacebookStrategy({
profileFields : ['user_photos', 'user_friends'],
}
然后我把它移到
app.get('/auth/facebook', passport.authenticate('facebook',
{ scope : ['email, public_profile, user_photos, user_friends'] }));
如果我删除 user_photos,它仍然会导致同样的错误,以及 user_friends。关于我做错了什么的任何想法?我的身份验证脚本的核心灵感来自本教程https://scotch.io/tutorials/easy-node-authentication-facebook
【问题讨论】:
-
可能会受到 fb api 更改的影响..
-
你有什么运气吗?我无法让“user_friends”通过。 'email' 或 'public_profile' 没问题。
标签: node.js facebook facebook-graph-api