0

我知道那里有几个答案,但它不适用于我的情况。 其实我的代码是通过获取基本的Facebook用户信息工作,但我想获得用户friends.And我定义user_friends范围,但没有得到user_friends数据 这是我的代码如何使用护照js获取Facebook朋友列表?

import express from 'express'; 
import path from 'path'; 
import webpack from 'webpack'; 
import webpackMiddleware from 'webpack-dev-middleware' 
import webpackHotMidleware from 'webpack-hot-middleware'; 
import bodyParser from 'body-parser'; 


    import webpackConfig from '../../webpack.config.dev'; 

    //Login Stuff 
    import passport from 'passport'; 
    import config from './Auth'; 
    const FacebookStrategy = require('passport-facebook').Strategy; 



    let app = express(); 
    app.use(bodyParser.json()); 
    app.use(express.static('public')) 


    const compiler = webpack(webpackConfig); 

    app.use(webpackMiddleware(compiler, { 
     hot: true, 
     publicPath: webpackConfig.output.publicPath, 
     noInfo: true 
    })); 

    app.use(webpackHotMidleware(compiler)); 

    //FacebookConfigStarts 
    passport.use(new FacebookStrategy({ 
      clientID: config.facebookAuth.clientID, 
      clientSecret: config.facebookAuth.clientSecret, 
      callbackURL: config.facebookAuth.callbackURL, 
      profileFields: ['id', 'displayName', 'photos', 'email'] 
     }, 
     function(accessToken, refreshToken, profile, done) { 


      console.log(profile) 


     } 
    )); 



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


    app.get('/auth/facebook/callback', 
     passport.authenticate('facebook', { successRedirect: '/profile', 
      failureRedirect: '/login' 

     })); 



    //FacebookConfigEnds 
    app.get('/*', (req, res) => { 
     res.sendFile(path.join(__dirname, '../../index.html')) 
    }); 


    app.listen(3000,() => { 
     console.log('Listening') 
    }); 
+0

你不是要求现场。 Plus:http://stackoverflow.com/q/23417356/1427878 – CBroe

回答

2

这段代码工作在我的应用程序

importFacebook = (user, accessToken, cb:() => void) => { 
    var options = { 
     host: 'graph.facebook.com', 
     port: 443, 
     path: '/v2.9/' + user.facebook.id + '/taggable_friends?access_token=' + accessToken, //apiPath example: '/me/friends' 
     method: 'GET' 
    }; 

    var buffer = ''; //this buffer will be populated with the chunks of the data received from facebook 
    var request = https.get(options, function (result) { 
     result.setEncoding('utf8'); 
     result.on('data', function (chunk) { 
      buffer += chunk; 
     }); 

     result.on('end', function() { 
      console.log(buffer); 
      cb(); 
     }); 
    }); 

    request.on('error', function (e) { 
     console.log('error from facebook.getFbData: ' + e.message) 
     cb(); 
    }); 

    request.end(); 
};