ruby-on-rails - 如何接收非通用 facebook 个人资料图片?
问题描述
我现在正在接收该个人资料图片,我没有更改我的配置中的任何内容(之前它工作正常,那个用户是我,我有个人资料图片)。
# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:facebook,
ENV.fetch("FACEBOOK_APP_ID"),
ENV.fetch("FACEBOOK_APP_SECRET"),
image_size: :large,
)
end
# app/controllers/sessions_controller.rb
def facebook
uid = auth_hash["uid"]
email = auth_hash["info"]["email"]
image_url = auth_hash["info"]["image"]
name = auth_hash["info"]["name"]
first_name = name.split.first
# ...
attach_image_from_url(@user, image_url)
# ...
end
private
def auth_hash
request.env["omniauth.auth"]
end
def attach_image_from_url(user, image_url)
# return if user.image.attached?
image = Down.download(image_url)
user.image.attach(io: image, filename: "image.jpg")
end
我有什么遗漏吗?
编辑:我尝试将 api 版本设置为 7.0(它是 4.0),似乎 /picture 端点已经消失了https://developers.facebook.com/docs/graph-api/changelog/version4.0/
解决方案
升级到 ominauth-facebook 8.0.0(从 7.0.0)并设置secure_image_url: true
修复它
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:facebook,
ENV.fetch("FACEBOOK_APP_ID"),
ENV.fetch("FACEBOOK_APP_SECRET"),
image_size: :large,
secure_image_url: true,
)
end
没有secure_image_url: true
我收到 500 错误,请参阅https://github.com/simi/omniauth-facebook/pull/346
推荐阅读
- linux - Debian 9,libm 和“符号 __get_cpu_features,版本 GLIBC_PRIVATE 未定义”
- python - 用于二叉搜索树的递归 PrintTree() 方法无法正确打印
- r - 具有 NA 的 R cummax 函数
- r - “survivalsvm”预测什么?
- c++ - 喷溅结构
- c - 双指针内存分配访问问题与没有索引的指针算术
- python - scrapy中的下一个按钮
- java - Java 与 MongoDB 连接问题 - 获取 SQL 异常
- python - Spyder 远程内核处理
- javascript - Express js 和 socket io 端口 3000 已经