1

我已经使用 Facebook 策略对我的用户进行了身份验证,并获得了他们的用户信息。我的应用程序现在需要访问 Facebook 上的其他图形 API 端点。我没有看到一种方法来访问向 Facebook 图形 API 发送请求的工具。在进一步检查策略后,我发现一切都是围绕 OAuth 2 策略构建的。

1) 如何使用 facebook 策略调用其他图形 api 端点?

2)我是否应该在某处钻取护照 api 以在某处访问相关的 oauth 对象以实现这一点?

还是我在想这个错误,我应该获取用户的访问令牌并使用另一个 3rd 方库来查询 facebook api?

4

2 回答 2

2

后一个,你只需要访问令牌,然后你可以发送一个普通的请求,带有香草或你想要的每个库(我个人喜欢残骸)。

那看起来像这样:

Wreck.get('https://graph.facebook.com/me?access_token=' + access_token, function(err, res, payload) { });
于 2015-02-09T10:42:09.697 回答
0

使用“passport-facebook”策略:

accessToken与配置文件一起返回

假设您已设置以下内容:

// .: Passport Strategy :.
const Strategy = require('passport-facebook').Strategy;
passport.use(new Strategy({
  clientID:"IDxxxxxxxxxxxxxxxxxxx",
  clientSecret:"SECRETxxxxxxxxxxxxxxxxxxx",
  profileFields: ['id', 'displayName', 'name', 'picture.type(large)', 'emails'],
  callbackURL:"http://localhost:1337/login/facebook/return"
 }, FacebookAccess )
)
function FacebookAccess(accessToken, refreshToken, profile, cb){
  // accessToken  : valid FB.GraphAPI token
  // refreshToken : undefined for Facebook
  profile.token = accessToken
  return cb(null, profile);
}

令牌包含在配置文件对象中,该对象传递给您决定的 passport.serializeUser函数,例如:

passport.serializeUser(function(user, cb){
  var platform_user = {
    fbid:user.id,
    name:user.displayName,
    mail:user.emails[0].value,
    token:user.token,
    avtr:user.photos[0].value
  }
  cb(null, platform_user)
})
于 2018-02-19T14:29:14.017 回答