2010-03-19 4 views
0

J'utilise sinatra/frankie/facebooker pour prototyper quelque chose de simple pour tester l'API facebook, j'utilise mmangino-facebooker la version la plus récente de github et j'ai cloné la version la plus récente de frankie. J'utilise Sinatra 0.9.6.Problème d'authentification sur Facebook en utilisant Ruby/sinatra/frankie/facebooker

Mon code principal est aussi simple que possible:

before do 

    ensure_application_is_installed_by_facebook_user 
    @user = session[:facebook_session].user 
    @photos = session[:facebook_session].get_photos(nil,@user.uid,nil) 
end 

get "/" do 
erb :index 
end 

get "/:uid/:image" do |uid,image| 


    @photo_selected = session[:facebook_session].get_photos([image.to_i],nil,nil) 


    erb :selected 


end 

La page d'index rend juste un lien vers l'autre (identifié par regex "/: uid /: image") mais je reçois toujours une erreur quand il essaie de rendre celle identifiée par regex "/: uid /: l'image"

Facebooker::Session::MissingOrInvalidParameter: Invalid parameter 

    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/parser.rb:610:in `process' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/parser.rb:30:in `parse' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/service.rb:67:in `post' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/session.rb:600:in `post_without_logging' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/session.rb:611:in `post' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/logging.rb:20:in `log_fb_api' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/logging.rb:20:in `log_fb_api' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/session.rb:610:in `post' 
    /Library/Ruby/Gems/1.8/gems/mmangino-facebooker-1.0.50/lib/facebooker/session.rb:198:in `secure!' 
    ./config/frankie/lib/frankie.rb:66:in `secure_with_token!' 
    ./config/frankie/lib/frankie.rb:44:in `set_facebook_session' 
    ./config/frankie/lib/frankie.rb:164:in `ensure_authenticated_to_facebook' 
    ./config/frankie/lib/frankie.rb:169:in `ensure_application_is_installed_by_facebook_user' 

Je ne sais pas pourquoi, il semble être lié avec le jeton auth Je suppose ..

I connecté la demande ma o de serveur de repos fb:

{:sig=>"4f244d1f510498f4efaae3c03d036a85", :generate_session_secret=>"0", :method=>"facebook.auth.getSession", :auth_token=>"9dae0d02c19c680b574c78d202b0582a", :api_key=>"70c14732815ace0ae71a561ea5eb38b7", :v=>"1.0"} 

{:call_id=>"1269003766.05665", :sig=>"194469457d1424dc8ba0678979692363", :method=>"facebook.photos.get", :subj_id=>750401957, :session_key=>"2.lXL0z3s4_r573xzQwAiA9A__.3600.1269010800-750401957", :api_key=>"70c14732815ace0ae71a561ea5eb38b7", :v=>"1.0"} 


{:sig=>"4f244d1f510498f4efaae3c03d036a85", :generate_session_secret=>"0", :method=>"facebook.auth.getSession", :auth_token=>"9dae0d02c19c680b574c78d202b0582a", :api_key=>"70c14732815ace0ae71a561ea5eb38b7", :v=>"1.0"} 

Le dernier donne l'erreur, il pourrait être lié à auth_token ayant la même valeur dans le 1er et le 3?

Vive et TKS, Ze Maria

+0

Bien cela a fonctionné en changeant set_facebook_session sur frankie.rb d'abord authentifié en utilisant facebook_params au lieu du auth_token, donc session_set = session_already_secured? || secure_with_token! || secure_with_facebook_params! est devenu: #session_set = session_already_secured? || secure_with_facebook_params! || secure_with_token! et en commentant la ligne #return sauf request_is_for_a_facebook_canvas? sur secure_with_facebook_params! – user361526

Répondre

0

Apparemment, si vous utilisez iFrame, vous pouvez obtenir le tken auth, mais en utilisant FBML, facebook envoie overs comme paramètre de poste, de sorte que vous devez utiliser après «/'comme votre index, ne pas obtenir'/'.

Questions connexes