我有一个使用omniauth通过Facebook验证用户身份的应用程序。我得到了我需要的所有数据,包括访问令牌。我正在使用Koala gem与Facebooks图形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开发者网站上设置权限/用户和权限。朋友权限。然而,当我跑步时,这似乎没有任何影响:
facebook.get_connections("me", "permissions")
我在返回的数组中看不到user_photos权限。
这是我认为导致这个问题的原因,但不确定为什么它没有通过。
如果我能提供任何其他信息,请告诉我。 任何帮助都感激不尽。非常感谢
答案 0 :(得分:3)
当您从应用程序的facebook获取oauth令牌时,您应该请求适当的权限,例如,OmniAuth使用的代码为用户请求设置read_stream
和user_photos
权限。该文件为config/initializers/omniauth.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, :setup => true, :scope => 'read_stream, user_photos'
end