【问题标题】:PassportJS to get Facebook User LocationPassportJS 获取 Facebook 用户位置
【发布时间】:2015-01-17 04:01:15
【问题描述】:

我尝试制定我的策略以通过两种方式获得用户的家,但这两种方式都不起作用。有没有人有 PassportJS 的代码来获取用户的地址(只是城市和州)?

同时尝试“位置”和“地址”的策略:

profileFields: ['id', 'name','picture.type(large)', 'emails', 'displayName', 'location', 'address', 'about', 'gender'],

正在尝试获取使用地址,如下所示portablecontacts.net

 user.facebook.location = profile.address.locality + ', ' profile.address.region;

【问题讨论】:

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


    【解决方案1】:

    在作用域中使用时不起作用,改为在声明策略中使用 passport.use(new fbStrategy({ clientID: fbClientId, clientSecret: fbClientSecret, callbackURL: fbCallback, profileFields: [ 'location', // <- HERE 'email', 'first_name','last_name', 'picture.type(large)', 'link' ] }, function(accessToken, refreshToken, profile, cb) { .... }) )

    【讨论】:

      【解决方案2】:

      编辑:更简单的答案

      那些尚未在代码中从便携式联系人架构映射到 Facebook 自己架构的位置字段。您可以看到该地图here(以及这两个字段的缺失)。

      相反,只需直接使用 Facebook 架构。所以profileFields数组应该包含location字段,那么当你调用authenticate时,你需要向Facebook请求该字段:

      passport.authenticate('facebook', { scope: ['email', 'public_profile', 'user_location'] }));
      

      请注意,在范围数组中,它被称为user_location,但在profileFields 数组中它只是location

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        • 1970-01-01
        • 2012-01-10
        相关资源
        最近更新 更多