FacebookGraphAPIError:(#100)尝试访问节点types(用户)上的不存在字段(user_photos)
我使用passport.js进行Facebook身份validation,最近我开始出现这个错误。 完整的错误信息如下所示:
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_friends,如果我删除user_photos。 任何想法,我在做什么错了? 我的authentication脚本的核心来自于本教程https://scotch.io/tutorials/easy-node-authentication-facebook
“一些Facebook集成需要在公共使用之前获得批准”。
https://developers.facebook.com/docs/facebook-login/permissions/
您的应用无论是在生产还是在testing中,都需要进行审查。
https://developers.facebook.com/docs/facebook-login/review/how-to-submit
在Facebook审查和批准之前,您的应用只能使用用户的公开个人资料和他/她的电子邮件。
除了公开的个人资料和电子邮件,其他权限要求您提交您的应用程序进行审批。 所以你所做的是:
- 去应用仪表板。
- 转到“angular色”并select“testing用户”。
-
创build一个testing用户(允许您创build超过1个),并授予他们计划请求的所有权限。
-
在“应用程序评论”部分,确保应用程序设置为开发模式\
- select您希望获得批准的权限。
现在,在执行这些权限的屏幕录像时,请使用testing用户….并获得该用户已经授予的权限,您可以无任何故障地执行屏幕录像。
在您的应用获得批准之后,您可以切换您的应用模式。
- Facebook上的多人游戏
- 在Rest API中使用Facebook维护Express和NodeJS中的JWT的密钥和访问令牌
- 由于“AuthorizationError”,未能从passport-facebook发现服务器错误
- Facebook护照策略返回500错误
- Passportjs Facebookloginstream程(passport-facebook vs passport-token)
- Facebook的使者bot错误“TypeError:不能读取未定义的属性”0“。
- meteor不能访问个人资料图片
- 如何将一个node.js webhook连接到我的Facebook应用程序的messenger API?
- 用ClaudiaJS和AWS Lambda发送POST HTTP