使用 Passport-facebook 从 Facebook 检索照片

2024-04-01

我可以通过 Passport-facebook 检索基本用户信息,遵循以下代码并保存在 mongodb 中:

app.get("/auth/facebook", passport.authenticate("facebook", { scope : ["email", "publish_stream", "user_location", "user_hometown", "user_birthday", "read_friendlists"]}));

app.get("/auth/facebook/callback", passport.authenticate("facebook",{ successRedirect: '/', failureRedirect: '/'}));

var mongoose = require('mongoose'), 
FacebookStrategy = require('passport-facebook').Strategy, 
Users = mongoose.model('Users');

module.exports = function (passport, config) { 
passport.serializeUser(function(user, done) { 
    done(null, user.id);
}); 

passport.deserializeUser(function(id, done) { 
    Users.findOne({ _id: id }, function (err, user) { 
        done(err, user); 
    });
});

passport.use(new FacebookStrategy({ 
    clientID: config.facebook.clientID,
    clientSecret: config.facebook.clientSecret,
    callbackURL: config.facebook.callbackURL 
}, function(accessToken, refreshToken, profile, done) { 
    Users.findOrCreateFaceBookUser(profile, done);
}));};

但是,我无法在“个人资料”中看到个人资料图片。

文档https://github.com/jaredhanson/passport-facebook https://github.com/jaredhanson/passport-facebook说要检索照片,我们需要传递 profileFields,如下所示。但这样做,我可以看到照片 URL,但丢失了 _json 中包含的其他数据,例如profile._json.location.name。如何检索完整保留其他用户信息的照片?

passport.use(new FacebookStrategy({
// clientID, clientSecret and callbackURL
profileFields: ['id', 'displayName', 'photos', ....]},// verify callback));

如果您需要更大的图像(上面 miksii 的示例中的默认值为 50px x 50px,非常小),请使用:

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

进而

picture: profile.photos ? profile.photos[0].value : '/img/faces/unknown-user-pic.jpg'

这将返回该用户的 200px x 200px 个人资料图片。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Passport-facebook 从 Facebook 检索照片 的相关文章

随机推荐

  • 为什么 React Native 中“Enter”键不触发 onKeyPress?

    我已在文本输入中添加了一个 onKeyPress 事件侦听器 以便当用户在手机键盘上单击 完成 或 转到 或 输入 时 它将调用我的 searchProducts 函数 我希望有一个 onSubmit 类型的事件侦听器选项 但无法找到类似的
  • 如何在意图中添加.apk文件

    我想在意图中添加 apk 文件 我想创建一个 共享 按钮 它将通过蓝牙或任何其他能够发送应用程序的应用程序共享整个应用程序 如果可以通过其他方式完成此操作 请告诉我 谢谢 List ApplicationInfo mAppList getP
  • 如何配置 gradle 仅使用 logback-classic 进行 Android 中的单元测试?

    我有一个使用 slf4j logback 的 Android 应用程序 Gradle 文件如下所示 compile com github tony19 logback android core 1 1 1 6 exclude group c
  • Android PreferenceFragment 找不到片段 id 的视图

    所以我正在制作一个android应用程序 我开始处理首选项 当我简单地使用 PreferenceActivity 时 一切都很完美 但是 如果我将它与 PreferenceFragment 一起使用 那么在我单击调用意图到 Settings
  • 表单身份验证添加附加信息以及 ReturnUrl

    使用表单身份验证 当应用程序需要重定向到登录页面时 是否有一个事件或任何可扩展点可以让我在重定向到登录页面之前对请求执行其他工作 我想在查询字符串中发送附加信息 这些信息可能会有所不同 因此无法将其静态嵌入到 web config 中的 l
  • 在 Android 上解析 DNS SRV 记录的轻量级方法

    在 Android 上进行 SRV 记录查找最节省资源的方法是什么 例如在 XMPP 客户端中 例如yaxim https github com pfleidi yaxim 我知道 JNDI http docs oracle com jav
  • 安装 play 框架 mongodb morphia 模块

    我正在使用以 mongodb 作为后端的 play 框架进行应用程序开发 我已经在我的 ubuntu 和 windows 上成功安装了 mongodb 和 playframework 但是如果我想使用 mongodb 我需要 play 框架
  • MacOS 更喜欢 /bin/sh 还是 /bin/bash?

    我想与某人共享一个脚本 但不确定在 MacOS 上首选哪个 哪一个最好支持 This bin sh echo Here goes my simple script that changes some settings do some stu
  • 从 ActionBarSherlock 迁移到 ActionBarCompat 时有哪些常见问题?

    我想从我的应用程序中删除 ActionBarSherlock 并将其替换为标准 ActionBarCompat 如何实现 ActionBarCompat 如何迁移活动 哪些导入替代了 ActionBarSherlock 导入 典型问题有哪些
  • 与 C# 4.0 一起使用的最佳 ORM [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 最好的方法是使用像 Nhiberta
  • 带 $ 的 Haskell 偏函数应用

    我是 Haskell 的新手 正在查看一个使用函数应用程序的简单示例 这看起来很简单 它需要一个函数并将其应用于一个值 所以这是有道理的 gt 3 2 5 这也是有道理的 gt 3 2 5 这是有道理的 因为第一个参数是函数 第二个参数是值
  • 存储桶日志文件的 S3 数据分区

    我有一个 s3 存储桶 ABC 并且在此存储桶上启用了日志记录 日志存储在 ABC logs 中 每天 ABC logs 中有许多文件 现在我想逐年分离这些日志 例如 s3 ABC logs year 2015 s3 ABC logs ye
  • ng2-charts 的自定义工具提示

    我正在做一些研究 我想知道是否可以像 Chart js 中那样制作自定义工具提示 但我找不到任何东西 我想在我的工具提示中添加一些 css 我正在使用 Angular5 尝试将其添加到您的图表选项 public barChartOption
  • 表情符号取值范围

    我试图从字符串中取出所有表情符号 就像消毒剂一样 但我找不到完整的表情符号值集 表情符号字符的 UTF16 值的完整集合是什么 Unicode 标准的Unicode 技术报告 51 http www unicode org reports
  • 更改Windows Phone通用应用程序中内容对话框按钮的样式

    我在 xaml 中定义了此内容对话框
  • 防止 python 覆盖范围包含虚拟环境站点包

    我是报道新手 遇到了一个奇怪的问题 我的报道考虑了我的虚拟环境站点包 这是覆盖率运行的输出 coverage run test py Ran 20 tests in 0 060s OK atcatalog jmfrank63 fullsta
  • 无法在 vs2008 中打开 NerdDinner 项目

    NerdDinner csproj 不会在带有 net 3 5 sp1 的 vs2008 sp1 中加载 我是不是对这些工具或其他东西不了解最新的情况 它抱怨此安装不支持此项目类型 您是否安装了 ASP NET MVC 框架 如果没有 你需
  • 将数据帧系列中的分数转换为浮点数

    在 Python 3 x 中 如何将包含分数字符串和 NaN 值的 Dataframe 列转换为浮点数 我尝试了一些方法 但没有找到合适的解决方案 所以如果我有一个数据框 df 它看起来像 a b 0 John 20 1 1 Bob NaN
  • 如何在 R 中获取整数哈希码?

    我想做的是在 R 中实现一个哈希技巧 代码如下 library digest a lt digest key a algo xxhash32 1 4da5b0f8 这返回了字符类型的哈希码 有什么办法可以把它变成整数吗 或者还有其他包可以实
  • 使用 Passport-facebook 从 Facebook 检索照片

    我可以通过 Passport facebook 检索基本用户信息 遵循以下代码并保存在 mongodb 中 app get auth facebook passport authenticate facebook scope email p