2011-01-20 12 views
9

Bu soru How can I specifiy what access I need from my user's Facebook accounts when using OmniAuth?'a benzer ancak bir uyarıya sahiptir.Facebook izinlerini (aka kapsam) nasıl belirleyebilirim OmniAuth DYNAMICALLY soruyor?

Web sitemde Facebook kullanıcılarını yetkilendirmek için OmniAuth kullanıyorum. Düzenli giriş/kayıt için, standart Facebook izinleri için kullanıcı kabul edilebilir. Ancak sitemde genişletilmiş izinler gerektiren bir özellik var (Facebook fotoğraflarına erişim). Sadece sitemizin Facebook fotoğraf özelliğini kullandıklarında kullanıcılar için genişletilmiş izin istemek istiyorum.

Ben sadece çok gibi, OmniAuth in başlatıcısı bir kapsam seçeneğini ekleyerek omniauth anlaşma için facebook izinlerini ayarlamak için nasıl web üzerinde bulunan tüm cevaplar:

ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Facebook, 'app_id', 'app_secret', {:scope => 'email,offline_access,the,scope,you,want} 

Ama kapsamını tanımlamak gerekir dinamik olarak, yalnızca kullanıcılar fotoğraf özelliğini kullandıklarında fotoğraf izinlerini isterler, ancak sadece ilk kez giriş yapıp kaydetmedikleri için değil.

Bunu nasıl yapacağını bilen var mı? Şimdiden teşekkürler.

cevap

11

Zaten bu soruna bir çözüm anladım olabilir ama ben hala bunu çözmek isteyenler için uymak düşündüm. Benim çözümüm, mümkün olan en küçük Facebook izinlerini ön tarafa göndermenizi ve ardından uygulamanızın ihtiyaç duyduğu anda bunları dinamik olarak talep etmenizi sağlar. Bu yardımcı olur

http://www.mikepackdev.com/blog_posts/2-Dynamically-Requesting-Facebook-Permissions-with-OmniAuth

Umut!

+0

Teşekkürler, Mike! Gerçekten minnettarım. Buna ihtiyaç duyabileceğini düşündüğüm bazı insanlara ilettim. –

+0

Sean, yardımcı olduğunu duyduğuma sevindim!Yeni siteme gelmek için ileriye dönük, daha eğlenceli şeyler için teşekkürler :) – Mike

+0

Omniauth-facebook için benzer kod nasıl görünüyor? –

-1

Bunu doğru şekilde yapamazsınız. Çünkü, kullanıcının yalnızca fotoğraf özelliğini kullandığından emin olamazsınız. Kullanıcı uygulama fotoğraf özelliği ve diğer özelliklerin tümüne erişebilirsiniz. Kullanıcı giriş yaptığında ve fotoğraf özelliğinizden başka bir özelliğe geçtiğinde, tekrar oturum açmasını isteyemezsiniz. Bu diğer özelliğe erişmek için.

Tüm kullanıcılar yetkilerinin ne tür bir erişim sağladığını gerçekten denetlemezler, bu nedenle çok fazla izin isteme konusunda endişelenmeyin.

+0

Kullanıcılarım fotoğraf özellikimi kullanmak için bağlantıyı tıkladıklarında, onları/auth/facebook'a (zaten giriş yapmış olsa bile) göndermem ve doğru izinler varsa, fotoğraf sayfasına yönlendirmek benim için kolaydır. verilmiş. Sorun, bağlantıyı tıkladıklarında {: scope = ""} şeklini değiştiriyor ve işiniz bittiğinde {: scope = ""} konumuna dönüyor. Bu tür uygulamaların başlamasından sonra kapsamın nasıl ve nasıl ayarlanabileceğine ihtiyacım var. Bu büyük bir web sitesinde yer almaktadır, bu nedenle giriş izni için kullanılabilecek kullanıcı yüzdesi, çünkü sigin için fotoğraf izinleri gereklidir. –