【问题标题】:Omniauth + facebook not working as expectedOmniauth + facebook 未按预期工作
【发布时间】:2011-03-03 09:42:57
【问题描述】:

我是 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 '/' do  

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

  get_sentence  
  @ranking = get_ranking
  erb :index
end

这样做,用户将被重定向到带有大 facebook 标志的 canvas facebook 页面上的应用程序,如果用户点击它,身份验证将继续并被重定向到 /。

我的意思是完全重定向,在 facebook 画布和域之外。

我看过几个教程,每个人都在做和我一样的事情,所以我真的不知道会发生什么。

【问题讨论】:

    标签: facebook sinatra omniauth


    【解决方案1】:

    Facebook 将您的应用程序实现为画布内的 iFrame。 Facebook 的默认行为是通过发出 POST 请求来请求画布。此行为记录在以下文章中:

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

    您可以通过禁用“POST for Canvas”在应用程序的高级设置中关闭此行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2021-06-04
      • 2022-01-24
      • 2015-05-11
      • 2020-05-15
      • 2014-10-31
      相关资源
      最近更新 更多