Passport JS和Facebook Open Graph api 2.0版错误

时间:2014-07-14 04:01:49

标签: node.js facebook-graph-api passport.js passport-facebook

我刚刚开始使用护照库,而且是一个总菜鸟。但是,当我使用我新创建的Facebook应用程序登录时,我收到以下错误:

500 FacebookGraphAPIError:(#12)用户名已弃用v2.0及更高版本

at /app/node_modules/passport-facebook/lib/strategy.js:167:21
at passBackControl (/app/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:124:9)
at IncomingMessage. (/app/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:929:16
at process._tickCallback (node.js:419:13)

一些研究表明,facebook的开放图形api不再支持“用户名”字段。但是看起来护照库不支持版本2.

1 个答案:

答案 0 :(得分:1)

目前最新版本的Facebook Graph API是v2.2。您可以通过覆盖选项来修复passport-facebook(它使用v1.0):

passport.use(new FacebookStrategy({

    clientID        : 'XXX',
    clientSecret    : 'XXX',
    callbackURL     : 'XXX',
    authorizationURL: 'https://www.facebook.com/v2.2/dialog/oauth',
    tokenURL: 'https://graph.facebook.com/v2.2/oauth/access_token',
    profileURL: 'https://graph.facebook.com/v2.2/me'

},