2

私は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 の大きな記号が付いたキャンバス Facebook ページのアプリケーションにリダイレクトされます。ユーザーがそれをクリックすると、認証が続行され、/ にリダイレクトされます。

つまり、Facebook キャンバスとドメインの外で完全にリダイレクトされます。

私はいくつかのチュートリアルを見てきましたが、誰もが私と同じことをしているので、何が起こっているのか本当にわかりません.

4

1 に答える 1

0

Facebookは、アプリケーションをキャンバス内のiFrameとして実装します。Facebookのデフォルトの動作は、POSTリクエストを作成してキャンバスをリクエストすることです。この動作は、次の記事に記載されています。

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

「POSTforCanvas」を無効にすることで、アプリケーションの詳細設定でこの動作をオフにできます。

于 2011-03-08T15:58:08.353 に答える