Как я могу указать, какой доступ мне нужен из учетных записей Facebook моего пользователя при использовании OmniAuth?

Когда вы используете OmniAuth для входа в веб-приложение через Facebook, веб-приложение имеет следующие разрешения:

Access my basic information Includes name, profile picture, gender, networks, user ID, list of friends, and any other information I've shared with everyone.

Send me email WebApp may email me directly at [email protected]

Access my data any time WebApp may access my data when I'm not using the application

Принимая во внимание, что когда вы используете гем mini_fb, чтобы связать веб-приложение с Facebook, это разрешения (должны быть указаны как код, в противном случае форматирование было странно):

Access my basic information
Includes name, profile picture, gender, networks, user ID, list of friends, and any other information I've shared with everyone.

Required
Send me email
WebApp may email me directly at [email protected] ·

Required
Access my profile information
Likes, Music, TV, Movies, Books, Quotes, About Me, Activitie...s, Interests, Groups, Events, Notes, Birthday, Hometown, Current City, Website, Religious and Political Views, Education History, Work History and Facebook StatusSee More

Required
Online Presence

Required
Access my family & relationships
Family Members and Relationship Status

Required
Access my photos and videos
Photos Uploaded by Me, Videos Uploaded by Me and Photos and Videos of Me

Required
Access my friends' information
Birthdays, Religious and Political Views, Family Members and... Relationship Statuses, Hometowns, Current Cities, Likes, Music, TV, Movies, Books, Quotes, Activities, Interests, Education History, Work History, Online Presence, Websites, Groups, Events, Notes, Photos, Videos, Photos and Videos of Them, 'About Me' Details and Facebook StatusesSee More

Required
Post to my Wall
WebApp may post status messages, notes, photos, and videos to my Wall

Access messages in my inbox

Access posts in my News Feed

Access my data any time
WebApp may access my data when I'm not using the application

Access Facebook Chat

Send me SMS messages
WebApp may send SMS messages to my phone:

Manage my events
WebApp may create and RSVP to events on my behalf

Access my custom friend lists

Access my friend requests

Insights
WebApp may access Insights data for my pages and applications

Manage my advertisements

В настоящее время я использую OmniAuth и хотел бы продолжать использовать его, но моему приложению требуются дополнительные разрешения, например некоторые из дополнительные, которые есть у mini_fb. Кто-нибудь знает, как настроить OmniAuth для запроса дополнительных разрешений?


person ben    schedule 31.10.2010    source источник


Ответы (2)


Вы можете проверить опцию, используя атрибут :scope:

use OmniAuth::Strategies::Facebook, 'app_id', 'app_secret', {:scope => 'email,offline_access, your,scope,you,want'}

Проверьте документацию по разрешениям Facebook, какую область вы действительно хотите, и определите ее отдельно с помощью команда на :scope вариант.

Если вы используете инициализатор для определения OamniOauth, это будет выглядеть так:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => 'email,offline_access, your,scope,you,want'}
end
person shingara    schedule 31.10.2010
comment
Спасибо за ваш ответ, это именно то, что мне было нужно. Извините за назойливость, но где именно я должен поставить эту строку? - person ben; 31.10.2010
comment
куда вы поместите свою конфигурацию Facebook. - person shingara; 31.10.2010

Если вы используете devise (как и я), самым простым решением будет наличие в вашем Gemfile как devise, так и omniauth-facebook. Затем в вашем инициализаторе разработки вы можете просто добавить:

config.omniauth :facebook, "app", "secret", :scope => "user_photos"

Это делает трюк довольно хорошо. Добавление инициализатора omniauth с настройкой устройства

person Fabio Russo    schedule 19.08.2012