Я использую synatra/frankie/facebooker, чтобы прототипировать что-то простое для проверки facebook api, я использую mmangino-facebooker, более позднюю версию из github и я клонировали самая последняя версия frankie. Я использую синатра 0.9.6.Проблема с Auth на Facebook с помощью 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 выполнил запрос ma де о сервере фб отдыха:
{: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, имеющих одинаковое значение в 1-й и на 3-м?
Приветствие и ТКС, З Мария
Ну, это сработало, изменив set_facebook_session на frankie.rb, чтобы сначала аутентифицироваться с использованием facebook_params вместо auth_token, поэтому 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? на secure_with_facebook_params! – user361526