2012-02-26 75 views
0

我寫了一個Rails應用程序。我使用omniauth進行身份驗證。 session.rbFbGraph無法更新狀態

auth = request.env["omniauth.auth"] 
    user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth) 
    session[:user_id] = user.id 

似乎一切正常爲好,但是當我想改變我的Facebook狀態,fbgraph不能做到這一點。我寫了這個代碼

provider = User.find_by_provider_and_name('facebook', current_user.name) 
      @facebook = FbGraph::User.me(provider.token) 
      @facebook.feed!("loanminder-test-message-#{Time.now.utc}") 

,異常就是這樣

FbGraph :: InvalidToken在LoansController#顯示

OAuthException ::錯誤驗證訪問令牌:會話不 匹配當前已存會話。這可能是因爲用戶自創建會話以來更改了密碼 ,或者由於安全原因Facebook更改了 會話。

我該如何解決這個問題,我怎樣才能通過Rails改變我的狀態?

回答

2

您的存儲令牌不再被接受。您將需要提示用戶重新登錄並使用新的訪問令牌,或者使用下面的令牌

app_id|secret

其中,如果您的應用程序ID爲942523352,你的祕訣是bc76876876f67676ae0那麼你訪問令牌

942523352|bc76876876f67676ae0