2010-11-25 51 views
15

J'ai lu les omniauth oauth rdocrails omniauth facebook prolongé la permission

@consumer = OAuth::Consumer.new(key, secret, { 
    :site    => "http://term.ie", 
    :scheme    => :header, 
    :http_method  => :post, 
    :request_token_path => "/oauth/example/request_token.php", 
    :access_token_path => "/oauth/example/access_token.php", 
    :authorize_path  => "/oauth/example/authorize.php" 
    }) 

il n'y a pas portée telle que

https://graph.facebook.com/oauth/authorize? 
    client_id=...& 
    redirect_uri=http://www.example.com/callback& 
    scope=user_photos,user_videos,publish_stream 

Comment puis-je ajouter un? J'essaie d'écraser oauth maintenant ... est-ce que quelqu'un a une meilleure solution?

Répondre

39

Mettre cela dans initialiseur

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook , 'app' , 'secret' , {:scope => "manage_pages"} 
end 

Si vous utilisez plus d'une portée, il est délimité par des virgules:

:scope => "offline_access, manage_pages" 
+1

Merci pour cela. –

+7

si vous utilisez plus d'un: scope, utilisez une chaîne séparée par des virgules: : scope => "offline_access, manage_pages" – rafamvc

+2

Documentation pour la configuration du fournisseur ici: http://rubydoc.info/gems/oa-oauth/0.2. 6/OmniAuth/Stratégies/Autorisations/portée Facebook disponibles ici: https://developers.facebook.com/docs/reference/api/permissions/ – clacke