【问题标题】:Facebook Graph API v 2.2 with passport.js: profile picture returns undefinedFacebook Graph API v 2.2 with passport.js:个人资料图片返回未定义
【发布时间】:2015-05-02 14:35:44
【问题描述】:

我正在使用 passport.js 在 node.js 中执行 Facebook 身份验证。除了用户个人资料图片外,一切正常。我尝试了这些方法:

user.facebook.picture = profile.user_photos[0].value;

user.facebook.picture = 'https://graph.facebook.com/' + user.facebook.id + '/picture?height=350&width=250';

并且还添加访问令牌:

user.facebook.picture = 'https://graph.facebook.com/' + user.facebook.id + '/picture?height=350&width=250' + "&access_token=" + user.facebook.token;

但是,在客户端 facebook 图片返回未定义。可能的解决方案是什么?

【问题讨论】:

  • 你能检查一下你得到了什么 graph.facebook.com/{UserProfileId}/picture uri
  • 我得到的正是我需要的。不知何故,您的问题促使我尝试另一种选择,谢谢您的提示

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


【解决方案1】:

我设法以非常奇特的方式解决了这个问题。 而不是使用

user.facebook.picture = 'https://graph.facebook.com/' + user.facebook.id + '/picture?height=350&width=250';

在passport.js 配置中,我在routes.js 中这样定义图片:

app.get('/profile', isLoggedIn, function(req, res) {
    res.render('profile.ejs', {
        user : req.user,
        picture: 'https://graph.facebook.com/' + req.user.facebook.id + '/picture?height=350&width=250'
    });
});

【讨论】:

  • 我猜这个问题与为 ejs 模板连接 request locals 相关,而不是来自 fb 护照。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-19
  • 2014-06-03
  • 2012-01-16
  • 2014-06-24
  • 2016-05-22
  • 1970-01-01
相关资源
最近更新 更多