考拉-使用facebook进行身份验证时不需要用户的照片权限

考拉-使用facebook进行身份验证时不需要用户的照片权限,facebook,facebook-graph-api,gem,koala,Facebook,Facebook Graph Api,Gem,Koala,我有一个应用程序,它使用omniauth对Facebook用户进行身份验证。我正在获取此操作所需的所有数据,包括访问令牌。我正在使用考拉宝石与Facebooks graph API进行通信,该API运行良好。因此,我有以下几点: models/authentication.rb def facebook @facebook ||= Koala::Facebook::API.new(oauth_token) end 因此,使用通常的考拉命令可以很好地工作: facebook.get_objec

我有一个应用程序,它使用omniauth对Facebook用户进行身份验证。我正在获取此操作所需的所有数据,包括访问令牌。我正在使用考拉宝石与Facebooks graph API进行通信,该API运行良好。因此,我有以下几点:

models/authentication.rb
def facebook
 @facebook ||= Koala::Facebook::API.new(oauth_token)
end
因此,使用通常的考拉命令可以很好地工作:

facebook.get_object("me") etc etc
现在,我想使用以下方式获取用户照片:

facebook.get_object("me/photos")
这只返回一个空数组。所以我研究了一下,意识到我需要在Facebook开发者网站上的权限设置为permissions/User&Friend permissions。然而,这似乎没有任何影响,当我运行时:

facebook.get_connections("me", "permissions")
我在返回的数组中看不到用户\u photos权限

我认为这是造成问题的原因,但不确定为什么它没有通过

请让我知道,如果有任何其他信息,我可以提供。
任何帮助都将不胜感激。非常感谢

当您从facebook为您的应用程序获取oauth令牌时,您应该请求适当的权限,例如,OmniAuth使用的代码将
读取流
用户照片
权限设置为用户请求。文件是
config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
   provider :facebook, :setup => true, :scope => 'read_stream, user_photos'
end

这就成功了,我早该想到的。非常感谢。只要我有足够的代表分数,我就会投票支持你的答案。@МаъСъъСъъъ:我们还应该提到FB应用程序id和密钥,在提供者:facebook之后,在范围之前,对吗?i、 它应该是
提供者:facebook,ENV['FB_APP_ID',ENV['FB_SECRET_KEY',{:scope=>“user_photos”}
。Rails应用程序在登录后仍不请求用户照片权限。在facebook的开发者网站上有什么设置吗?@rAzOr我相信你应该在再次请求使用新设置之前将密钥对作废。