Мое приложение facebook перенаправляется на URL-адрес холста (http://my -домен / приложение) после того, как пользователь авторизовал приложение. Последовательность шагов описана ниже:
1) Новый пользователь открывает приложение на холсте и перенаправляется в диалог прав доступа через перенаправление Javascript
2) Как только пользователь авторизовал приложение, вызывается redirect_uri приложения, и я получаю токен доступа, который я сохраняю в сеансе
3) Я также получаю идентификатор авторизованного пользователя и сохраняю его в сеансе
4) Когда я перенаправляю его на URL-адрес холста, он выходит из холста Facebook
5) Если я пытаюсь перенаправить его на страницу холста (http://apps.facebook.com/app_name), он застревает в бесконечном цикле, потому что значения сеанса очищаются и процесс повторяется - я не знаю почему.
Это приложение rails 3, и я использую камень коала. Код показан ниже:
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
Я потратил почти целый день, пытаясь это исправить, и в поисках решения, но на данный момент ничего особенного.