2010-03-19 5 views
0

페이스 북 API를 테스트하기위한 간단한 프로토 타입에 sinatra/frankie/facebooker를 사용하고 있습니다. mmangino-facebooker를 github의 최신 버전과 복제했습니다. 프랭키의 최신 버전. 나는 sinatra 0.9.6을 사용하고있다.Ruby/sinatra/frankie/facebooker를 사용하여 페이스 북에서 인증 문제

내 주요 코드는 가능한 한 간단하지만 난 항상 오류가

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 

은 인덱스 페이지가 단지 (": UID/이미지 /"정규식에 의해 확인 된) 다른 하나에 대한 링크를 렌더링 이 정규식에 의해 식별 된 하나의 렌더링하려고 "/ : UID/: 이미지"

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' 

나는 내가 추측 인증 토큰과 관련이있을 것으로 보인다 이유를 모른다 ..

I을했습니다 없다 요청을 기록했다. 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"} 

마지막으로 오류가 발생합니다. 첫 번째와 세 번째에 동일한 값을 갖는 auth_token과 관련 될 수 있습니까? 이 게시물을 사용할 필요가 있도록

환호와 TKS, '제 마리아 당신이있는 iFrame을 사용하는 경우 분명히

+0

frankie.rb의 set_facebook_session을 auth_token 대신 facebook_params를 사용하여 먼저 인증하도록 변경 한 것이므로 session_set = session_already_secured입니까? || secure_with_token! || secure_with_facebook_params! 가되었습니다. #session_set = session_already_secured? || secure_with_facebook_params! || secure_with_token! 그리고 request_is_for_a_facebook_canvas가 아닌 한 #return 줄을 주석으로써? secure_with_facebook_params의 ! – user361526

답변

0

, 당신은 /', 페이스 북이 게시물 매개 변수로 오버 전송, 그러나 FBML을 사용하여 인증의 tken를 얻을 수 있습니다 '를 색인으로 사용하고'/ '를 가져 오지 마십시오.