2013-11-15 4 views
2

У меня есть приложение, которое аутентифицирует пользователей с помощью Facebook с помощью omniauth. Я получаю все данные, которые мне нужны для этого, включая токен доступа. Я использую жемчужину Koala для общения с графическим API-интерфейсом Facebooks, который работает нормально. Поэтому у меня есть следующие:Koala - разрешение пользователя_photos не запрашивается при аутентификации с помощью facebook

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 под разрешениями/User & Права доступа. Это, однако, как представляется, не оказывают никакого влияния, как, когда я бегу:

facebook.get_connections("me", "permissions") 

Я не вижу разрешение на user_photos в возвращаемом массиве.

Это то, что, по моему мнению, вызывает проблему, но не знаю, почему она не проходит.

Пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я мог бы предоставить. Любая помощь будет высоко оценена. Большое спасибо

ответ

3

Вы должны запросить соответствующие разрешения, когда вы получаете OAuth маркер из Facebook для вашего приложения, например, это 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 
+0

Это сделало трюк, должно было подумать об этом. Большое спасибо. Я проголосую за ур, чтобы ответить, как только у меня появятся достаточные ответы. –

+0

+100 пунктов для входа с facebook/g +/etc –

+0

@ МалъСкрылевъ: Мы также должны упомянуть FB app_id и secret_key, после провайдера: facebook и до: scope, правильно? то есть это должно быть «поставщик: facebook, ENV ['FB_APP_ID'], ENV ['FB_SECRET_KEY'], {: scope =>" user_photos "}'. Приложение Rails по-прежнему не запрашивает разрешение на использование фотографий пользователей после входа в систему. Любые настройки, которые необходимо внести на сайт разработчика facebook? – rAzOr