Node.js – FacebookGraphAPIError: (#100) Tried accessing nonexisting field (user_photos) on node type (User)


I'm using passport.js for Facebook authentication and I started to get this error recently. Full error message looks like this:

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 
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)

I tried different approaches to set permissions scope. Initially I declared it in

passport.use(new FacebookStrategy({
    profileFields     : ['user_photos', 'user_friends'],

Then I moved it to

app.get('/auth/facebook', passport.authenticate('facebook', 
{ scope : ['email, public_profile, user_photos, user_friends'] }));

And it still causes the same error, as well as user_friends if I remove user_photos. Any ideas on what am I doing wrong? Core of my authentication script was inspired by this tutorial

Best Solution

"Some Facebook integrations require approval before public usage."

Your app, either in production or in testing, needs to be reviewed.

Until reviewed and approved by Facebook, your app can use only the public profile of an user and his/her email.

Related Question