ユーザーがアプリを承認した後、Facebook アプリがキャンバス URL (http://my-domain/app) にリダイレクトされます。一連の手順は次のとおりです。
1) 新しいユーザーがキャンバスでアプリを開き、Javascript リダイレクトを介して oauth 権限ダイアログにリダイレクトされます
2)ユーザーがアプリを承認すると、アプリのredirect_uriが呼び出され、セッションに保存したアクセストークンを取得します
3)許可されたユーザーのユーザーIDも取得し、セッションに保存します
4) キャンバスの URL にリダイレクトすると、Facebook のキャンバスから移動します。
5) キャンバス ページ (http://apps.facebook.com/app_name) にリダイレクトしようとすると、セッションの値がクリアされ、プロセスが繰り返されるため、無限ループに陥ります - 理由がわかりません.
これは Rails 3 アプリで、koala gem を使用しています。コードを以下に示します。
def index
if (session[:access_token].blank?)
session[:oauth] = Koala::Facebook::OAuth.new(APP_ID, APP_SECRET, oauth_redirect_url)
end
@app_id = APP_ID
end
def redirect
session[:access_token] = session[:oauth].get_access_token(params[:code]) if params[:code]
if session[:access_token].blank?
flash[:error] = "You didn't authorize the application. Please authorize the application to throw a firecracker on your friend's wall!"
redirect_to :action => "authorize_app" and return
else
session[:fb_user_id] = Koala::Facebook::API.new(session[:access_token]).get_object("me")["id"]
end
redirect_to :action => "index"
end
私はそれを修正しようとしてほぼ1日を無駄にし、解決策を探しましたが、今のところうまくいきません.