我有一个应用程序,可以使用omniauth 对 Facebook 的用户进行身份验证。我正在获取为此所需的所有数据,包括访问 token 。我正在使用 Koala gem 与 Facebook 的图形 API 进行通信,该 API 工作正常。所以我有以下内容:
models/authentication.rb
def facebook
@facebook ||= Koala::Facebook::API.new(oauth_token)
end
因此,使用常用的 koala 命令就可以正常工作:
facebook.get_object("me") etc etc
我现在想使用以下方法提取用户照片:
facebook.get_object("me/photos")
这仅返回一个空数组。所以我研究了一下并意识到我需要在 Facebook 开发者网站上的权限/用户和 friend 权限下设置权限。然而,当我运行时,这似乎没有任何影响:
facebook.get_connections("me", "permissions")
我在返回的数组中没有看到 user_photos 权限。
我认为这就是导致问题的原因,但不确定为什么它没有解决。
如果我可以提供任何其他信息,请告诉我。 任何帮助都感激不尽。非常感谢
最佳答案
当您从 facebook 获取应用程序的 oauth token 时,您应该请求适当的权限,例如,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
关于facebook - Koala - 使用 Facebook 进行身份验证时未请求 user_photos 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20002072/