Omniauth + Facebook не работает, как ожидалось - PullRequest
2 голосов
/ 03 марта 2011

Я новичок в Omniauth.Я делаю заявку на игрушку.Отображает случайное предложение и все.Я использую Синатру + Омниавт.Я хотел бы сделать это приложение Facebook.Я в основном следовал этому уроку: http://devcenter.heroku.com/articles/facebook (текущее приложение на: http://frasesbarrio.heroku.com/)

Я указал fb-приложение на http://frasesbarrio.heroku.com/

У меня есть этот код:

use OmniAuth::Builder do
  provider :facebook, APP_ID, APP_SECRET, { :scope => 'status_update, publish_stream, offline_access' }
end


get '/auth/facebook/callback' do
#  raise "auth facebook"
  session['fb_auth'] = request.env['omniauth.auth']
  session['fb_token'] = session['fb_auth']['credentials']['token']
  session['fb_error'] = nil

  redirect '/'
end

И у меня есть несколько проблем:

Когда пользователь запрашивает приложение FB, Facebook выдает POST на моем / я думаю, что это странно, потому что я не видел ничего подобного влюбой учебник.У меня есть только:

post '/' do  

  redirect "http://localhost:4567/auth/facebook"

  get_sentence  
  @ranking = get_ranking
  erb :index
end

При этом пользователь будет перенаправлен на страницу приложения на холсте facebook с большим знаком Facebook, если пользователь нажимает на него, аутентификация продолжается, и он перенаправляется на /.

Я имею в виду полностью перенаправленный вне холста и домена facebook.

Я видел несколько уроков, и все делают то же самое, что и я, поэтому я действительно не знаю, что может происходить.

1 Ответ

0 голосов
/ 08 марта 2011

Facebook реализует ваше приложение как iFrame внутри холста. Поведение по умолчанию для Facebook - запросить холст, сделав запрос POST. Это поведение описано в следующей статье:

http://developers.facebook.com/docs/canvas/post/

Вы можете отключить это поведение в дополнительных настройках своего приложения, отключив «POST for Canvas».

...