¿Cómo puedo especificar qué acceso que necesito de Facebook de mi cuentas de usuario al utilizar OmniAuth?

StackOverflow https://stackoverflow.com/questions/4062065

Pregunta

Cuando se utiliza OmniAuth Para acceder a una aplicación web a través de Facebook, estos son los permisos de la aplicación web tiene:

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@email.com

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

Mientras que cuando se utiliza el mini_fb joya de vincular una aplicación web a Facebook, estos son los permisos (tienen que especificar esto como de lo contrario el formato de código era raro):

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@email.com ·

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

Estoy usando OmniAuth en este momento, y me gustaría seguir haciéndolo, pero mi aplicación necesita más permisos, como algunos de los extras que mini_fb tiene. ¿Alguien sabe cómo puedo personalizar OmniAuth para solicitar permisos adicionales?

¿Fue útil?

Solución

Se puede comprobar en la opción de utilizar el atributo :scope:

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

Facebook documentación permisos lo alcance que realmente quiere y definirlo separar por un commant en la opción :scope.

Si utiliza un inicializador para definir su OamniOauth, que es así:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => 'email,offline_access, your,scope,you,want'}
end

Otros consejos

Si está utilizando legado (como yo) la solución más fácil es tener ambos 'legado' y 'OmniAuth-facebook' en su Gemfile. Luego, en el legado de inicialización sólo se puede añadir:

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

Este es el truco bastante bien. Añadiendo el inicializador OmniAuth con legado set-up

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top