我是 Omniauth 的新手。我正在制作一个玩具应用程序。它显示一个随机句子,仅此而已。我正在使用 Sinatra + 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 标志的 canvas facebook 页面上的应用程序,如果用户单击它,身份验证将继续,他将被重定向到 /。
我的意思是完全重定向,在 facebook 画布和域之外。
我看过几个教程,每个人都在做和我一样的事情,所以我真的不知道会发生什么。